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)
图片说明

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

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

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

图片说明

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

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

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


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

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

时过多年没想到这个问题还有人回答,自己回答一下,关于权限问题,6.0以后,除了在AndroidManifest.xml文件中申明需要的权限,还需要在代码动态申请,目前在代码中我用的动态申请权限工具是RxPermission
代码:请求定位权限:Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION
这两个权限需要申明在代码,AndroidManifest文件中。**_两次_**

                 new RxPermissions(this)
                        .request(Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION)
                        .subscribe(new Consumer<Boolean>() {
                            @Override
                            public void accept(Boolean grant) throws Exception {
                                if(!grant){
                                    Toast.makeText(LoginActivity.this,"获取定位权限失败,无法加载地图",Toast.LENGTH_SHORT).show();
                                }
                            }
                        });

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