android 中添加了读写文件的权限,却报(Permission denied)错误

android 中添加了读写文件的权限,却报open failed: EACCES (Permission denied)
太坑人了!
添加了权限




    //代码部分:
    File file2 = new File(Environment.getExternalStorageDirectory(),"file2.txt");
    file2.setWritable(true);
    file2.setReadable(true);
            FileOutputStream fos = new FileOutputStream(file2);
    fos.write("nihao world".getBytes());

            报错

            java.io.IOException: open failed: EACCES (Permission denied)

com.example.testfile W/System.err: at java.io.File.createNewFile(File.java:939)
com.example.testfile W/System.err: at com.example.testfile.MainActivity.createFile(MainActivity.java:31)
图片说明

11个回答

安卓6.0以上即使添加了权限也不会自动授权,需要在用权限的时候进行动态获取权限,要么把sdk调到22

qq_39944841
小小只也 如何动态获取权限??
接近 3 年之前 回复

除了权限 还要判断 版本号 api 19以下 和19以上 要在 sd卡 的 data/data/包名/cache下写 文件 6.0的就不能在sd卡写东西 还有手机厂商 要是公司的应用你就多判断一下

qwe1314225
佛一脚 我用的是6.0的api
4 年多之前 回复

需要加入运行时权限,代码如下
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((BaseActivity) mContext, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}

jieyong97
jieyong97 回复梦想川流不息: context是上下文,一般在活动里面传this就可以了
一年多之前 回复
qq_38049154
梦想川流不息 mContext是什么啊?我直接复制进去报错,求大佬告诉我下
2 年多之前 回复
qq_37701372
ToryXu 能不能解释一下构造器里的内容,谢谢!
接近 3 年之前 回复

为什么清单文件填了权限,动态申请也申请了,手机设置里面查看app的权限确实也允许了,为什么还包这个Permission denied 创建文件夹没权限,
完了

lyl11126com
lyl11126com 回复qq_33121089:我也遇到了,你解决了没?
接近 2 年之前 回复
qq_33121089
qq_33121089 你这个权限的问题 解决了没?我这面也遇到了,求教你怎么解决的
接近 2 年之前 回复
qwe1314225
佛一脚 方便贴代码看看吗?
大约 2 年之前 回复

图片说明

图片说明
什么权限都添加了,难道还有什么权限吗?


这两个权限添加了吗
添加的位置对吗

使用真机调试手机连接进入后会一个usb数据存储开关,软件读写不了SD卡的。

理论上是可以好,换个手机试下

qwe1314225
佛一脚 。模拟器唉,都不行,
4 年多之前 回复

权限都申请的话,如果是USB连接到电脑上测试,而且USB选择的是Mediea,请拔掉USB线,再重启App

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐