Android 出现open failed: EACCES (Permission denied)错误**

首先考虑获得权限

 <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
    tools:ignore="ProtectedPermissions" />

然后在mainacitvity中获得动态权限

public static final int EXTERNAL_STORAGE_REQ_CODE = 10 ;
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE };

/**
 * Checks if the app has permission to write to device storage
 *
 * If the app does not has permission then the user will be prompted to
 * grant permissions
 *
 * @param activity
 */
public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    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);
    }

}

如果以上两种方法都不可以

在manifest的application中加入
android:requestLegacyExternalStorage=“true”

猜你喜欢

转载自blog.csdn.net/weixin_43854941/article/details/107985194