Android无法使用FileNotFoundException(拒绝权限)打开文件,但授予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被授予。
Manifest.xml
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
Android OS 6.0版设备。
为什么...?
答案 0 :(得分:2)
尝试授予运行时权限
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
);
}
答案 1 :(得分:2)
您实现了运行时权限吗?, 首先,您从设置中手动授予存储权限,然后检查是否发生异常,否则,您在实现权限时会出错。
答案 2 :(得分:0)
谢谢您的回答...
这是一个非常奇怪的现象。 一次,我能够修复它以使其正常工作。
使用jobb命令创建一个obb文件,其名称与在Google Play端重命名的名称相同。
那是...在像这样进行修复之前。(示例)
jobb -pn com.test.testapp -pv 1 -d ./myfiles -o main1.obb
如果您将“ main1.obb”上传到Google Play,则将同时下载“ main.1.com.test.testapp.obb”和apk下载。
但这不好。
校正后,就这样编程了。
jobb -pn com.test.testapp -pv 1 -d ./myfiles -o main.1.com.test.testapp.obb
当发生以下错误时,我认为obb挂载有问题:
java.io.FileNotFoundException: /mnt/obb/"file detailed path": open failed: EACCES (Permission denied)
因此,我尝试在错误后卸载obb。 然后又出现错误。
public static final int ERROR_PERMISSION_DENIED = 25;
如果我尝试卸载已安装的obb,则是权限错误。 这很奇怪。
当我在Internet上查询时,问题是使用jobb命令创建的obb文件名吗?还是包裹名称?据说发生了。
因此,我更改了jobb命令生成的obb文件名。 这没有问题。当然,“ READ_EXTERNAL_STORAGE”一直都在获得。
我什么都不懂。 只是应用程序正常工作。
谢谢。