open failed: EACCES (Permission denied)错误解决亲测有效

前两天在使用Android studio练习通过手机上传照片时,明明在manifest中已经获取了读取和写入的权限,但还是产生了open failed: EACCES (Permission denied) 的错误。

上网找了很多解决办法,其中经验贴中出现最多的就是说要在Java文件中再次检查权限,也就是添加下面的代码

if (Build.VERSION.SDK_INT >= 23) {
            int REQUEST_CODE_PERMISSION_STORAGE = 100;
            String[] permissions = {
                    Manifest.permission.READ_EXTERNAL_STORAGE,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE
            };

            for (String str : permissions) {
                if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                    this.requestPermissions(permissions, REQUEST_CODE_PERMISSION_STORAGE);
                    return;
                }
            }

不过我试了之后发现运行依旧存在上面的报错,也就是问题并没有解决。

.
.

最终在manifest中添加

<application
       ...
        android:requestLegacyExternalStorage="true">

然后再运行便没有错误了。
.
.
.

欢迎交流和指正

你可能感兴趣的:(笔记,android)