錯誤如下:
COPY FILE ERR :/storage/emulated/0/DCIM/Camera/IMG_20191110_064743_365.jpg: open failed: EACCES (Permission denied)
在AndroidManifest.xml中申請權限:
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" /> <!--外部存儲的寫權限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--外部存儲的讀權限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission tools:ignore="ProtectedPermissions" android:name="android.permission.WRITE_MEDIA_STORAGE" /> <uses-permission tools:ignore="ProtectedPermissions" android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
後仍然報錯。
一、添加動態申請權限:
public static void verifyStoragePermissions(Activity activity) { if (Build.VERSION.SDK_INT >= 23) { int REQUEST_CODE_PERMISSION_STORAGE = 100; String[] permissions = { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }; for (String str : permissions) { Log.d(TAG,str+" : "+activity.checkSelfPermission(str)); if (activity.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(permissions, REQUEST_CODE_PERMISSION_STORAGE); //return; } } } }
還是報錯。
二、修改build.gradle中
targetSdkVersion 29 -> targetSdkVersion 23
問題解決!