首页 > 解决方案 > Android 无法打开文件,FileNotFoundException(Permission denied),但是 PermissionRead 被授予

问题描述

Android 无法使用 FileNotFoundException(Permission denied) 打开文件,但已授予 PermissionRead。

java.io.FileNotFoundException:/mnt/obb/“文件详细路径”:打开失败:EACCES(权限被拒绝)

obb 文件是 ERROR_ALREADY_MOUNTED。

int readPermission = ContextCompat.checkSelfPermission(activity, mPermissions[0]);
int writePermission = ContextCompat.checkSelfPermission(activity, mPermissions[1]);

readPermission == 0;
writePermission == 0;

PermissionRead 被授予。

清单.xml

<uses-permission
   android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
   android:name="android.permission.READ_EXTERNAL_STORAGE" />

Android OS 6.0 版设备。

为什么...?

标签: androidfile-not-found

解决方案


尝试授予运行时权限

int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

if (permission != PackageManager.PERMISSION_GRANTED) {
    // We don't have permission so prompt the user
    ActivityCompat.requestPermissions(
            activity,
            PERMISSIONS_STORAGE,
            REQUEST_EXTERNAL_STORAGE
    );
}

推荐阅读