[英]Open Failed: EACCES(Pemission Denied) in Android 11
嘗試從內部存儲上傳文件時,出現打開失敗的異常: EACCES Denied
。 我添加了android:requestLegacyExternalStorage="true"
if (SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(getContext(),
READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), new String[]{READ_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_PERMISSION_CODE);
ActivityCompat.requestPermissions(getActivity(), new String[]{ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION},1);
requestPermission();
//startActivity(new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Uri.parse("package:${BuildConfig.APPLICATION_ID}")));
return;
}
在 Android 10 和 11 中,您必須使用 Scoped Storage 來訪問文件。 但是,如果您將android:requestLegacyExternalStorage
設置為true
,那么您可以使用之前在 Android 10 中訪問存儲的方法。
對於 Android 11,您必須將targetSDKVersion
設置為29
而不是30
以使android:requestLegacyExternalStorage
如下圖所述工作,參考 - ZE84E30B9390CDB4864DDB6DB2C 中的存儲更新。
因此,在您的 build.gradle(應用程序)中,使用Scoped Storage設置targetSdkVersion 29
或 go 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.