android - 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 版设备。
为什么...?
解决方案
尝试授予运行时权限
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
);
}
推荐阅读
- java - Java XStream - 在根级别序列化/反序列化多种类型的数组
- mysql - mysql - 如果至少有一名学生参加,则查找班级的所有学生
- android - 改造 JSON 解析 - 如何检测数据字段是否存在?
- azure - 如何使用 bash cli 检查密钥库名称是否可用?
- java - 如何从java中的递归函数返回特定字符串?
- mainframe - 使用 ISPF Edit via TN3270 编辑文件时如何插入字符?
- reactjs - React Native:更新对象内的数组
- c++ - avformat_close_input 内存泄漏?
- python - K 均值算法中 n_clusters 的最大值
- pytorch - 当我使用由 torch.nn.function.mse_loss 定义的损失函数时,损失将是 Nan