簡體   English   中英

打開失敗:Android 11 中的 EACCES(拒絕權限)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM