【发布时间】:2020-12-26 15:56:14
【问题描述】:
我正在使用一个演示项目来获取图像并将其保存到 SD 卡中,效果很好。但是用同样的代码新建项目后,一直报“Permission Denied”错误和IO异常。
xml和gradle文件是从demo项目中复制过来的,只删除了几个activity,xml文件中说明了权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
也在代码中动态请求
public class PermissionManager {
private static final int REQUEST_CODE_ASK_PERMISSIONS = 1;
private static final String[] PERMISSIONS_ARRAYS = new String[] {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
private static List<String> permissionsList = new ArrayList<>();
private PermissionManager() {
}
public static void onResume(final Activity activity) {
boolean isHasPermission = true;
for (String permission : PERMISSIONS_ARRAYS) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
isHasPermission = false;
break;
}
}
if (!isHasPermission) {
for (String permission : PERMISSIONS_ARRAYS) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(permission);
}
}
ActivityCompat.requestPermissions(activity,
permissionsList.toArray(new String[permissionsList.size()]), REQUEST_CODE_ASK_PERMISSIONS);
}
}
我发现关于这个问题有几个问题,但如上所示,权限请求和声明都已设置,并且它们在旧项目中运行良好,有人可以提供一些提示吗?
【问题讨论】:
-
打开应用确实会弹出权限请求对话框,在设置-应用中,应用确实有存储权限。
标签: java android filesystems