国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android11及以上 文件讀寫權(quán)限申請

這篇具有很好參考價(jià)值的文章主要介紹了Android11及以上 文件讀寫權(quán)限申請。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Android11 讀寫權(quán)限申請
Android11系統(tǒng)對應(yīng)用寫入權(quán)限做了嚴(yán)格的限制。本文介紹如何獲取文件讀寫權(quán)限。項(xiàng)目中 build.gradle 的targetSdkVersion >= 29 ,會(huì)出現(xiàn)讀寫問題。
當(dāng)targetSdkVersion = 29,通過設(shè)置requestLegacyExternalStorage=“true”,還能解決。
當(dāng)targetSdkVersion = 30后,需要申請所有文件權(quán)限才能獲取到寫入權(quán)限。

AndroidManifest添加權(quán)限設(shè)置

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
? ? ? ? tools:ignore="ScopedStorage" /><!--add 2022-2-11 Android11-->

<application
?? ?...
? ? android:requestLegacyExternalStorage="true"?
? ? ...
? ? >

? ? ? ??
代碼申請動(dòng)態(tài)權(quán)限
1.Android 6.0之上Android11以下申請權(quán)限
?

 if (Build.VERSION.SDK_INT >= 23) {// 6.0
        String[] perms = {
                Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
                Manifest.permission.READ_PHONE_STATE};
        for (String p : perms) {
            int f = ContextCompat.checkSelfPermission(SafeKeyToolActivity.this, p);
            Log.d("---", String.format("%s - %d", p, f));
            if (f != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(perms, 0XCF);
                break;
            }
        }
    }


Android11申請權(quán)限
跳轉(zhuǎn)系統(tǒng)設(shè)置界面,用戶授權(quán)獲取權(quán)限。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !isRefuse) {// android 11  且 不是已經(jīng)被拒絕
        // 先判斷有沒有權(quán)限
        if (!Environment.isExternalStorageManager()) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
            intent.setData(Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent, 1024);
        }
    }

// 帶回授權(quán)結(jié)果
 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1024 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    	// 檢查是否有權(quán)限
        if (Environment.isExternalStorageManager()) {
            isRefuse = false;
            // 授權(quán)成功
        } else {
            isRefuse = true;
            // 授權(quán)失敗
        }
    }
}


?Android11及以上 文件讀寫權(quán)限申請

對于部分手機(jī)如小米手機(jī),即使獲取了所有文件的管理權(quán)限,依舊訪問不到Android/data目錄,如圖:

?Android11及以上 文件讀寫權(quán)限申請

?

嘗試解決辦法:

只在外部存儲(chǔ)的應(yīng)用私有目錄下,用直接路徑讀寫文件。
訪問或者共享媒體文件,使用MediaStore在公共目錄下讀寫文件
訪問或者共享非媒體文件,使用系統(tǒng)的文件選擇器SAF在公共目錄Download下讀寫文件。
根目錄下可以創(chuàng)建自定義文件夾、文件。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-409573.html

到了這里,關(guān)于Android11及以上 文件讀寫權(quán)限申請的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android申請權(quán)限(相機(jī)權(quán)限和讀寫權(quán)限)

    Android申請權(quán)限(相機(jī)權(quán)限和讀寫權(quán)限)

    開發(fā)一個(gè)相機(jī)應(yīng)用,需要申請三個(gè)權(quán)限:相機(jī)、讀文件、寫文件。 初步授權(quán)成功

    2024年02月11日
    瀏覽(27)
  • Android 11 上的文件讀寫權(quán)限(MANAGE_EXTERNAL_STORAGE)

    Android 11 上的文件讀寫權(quán)限(MANAGE_EXTERNAL_STORAGE)

    ???? Android11 + RK3566 + AndroidStudio Android 權(quán)限的變化, 幾乎每個(gè)版本的SDK都會(huì)有, 其中最大的一次是在6.0時(shí), 增加的動(dòng)態(tài)權(quán)限申請 讀寫存儲(chǔ)的權(quán)限也幾經(jīng)更迭, 對開發(fā)人員來說, 越來越難.比如, 本文所要討論的: 允許管理所有文件 首先是 targetSdkVersion 大于等于 30. (build.gradle) 當(dāng)聲

    2024年01月16日
    瀏覽(24)
  • android 12 SD動(dòng)態(tài)申請讀寫權(quán)限

    android 12 SD動(dòng)態(tài)申請讀寫權(quán)限

    android 12不僅需要在AndroidManifest.xml申請讀寫權(quán)限也需要在代碼中動(dòng)態(tài)的申請 關(guān)于如何動(dòng)態(tài)申請讀寫權(quán)限僅需要兩步 在AndroidManifest.xml文件中申請讀寫權(quán)限 在代碼的啟動(dòng)MainActivity中動(dòng)態(tài)申請方法 下面是關(guān)于動(dòng)態(tài)權(quán)限申請的Manifest.class類大家有興趣可以去了解下

    2024年02月11日
    瀏覽(26)
  • Android 10以上出現(xiàn)的 android Permission denied 讀寫權(quán)限問題解決方法

    原因: 從Android 10 開始,應(yīng)用即使申請了權(quán)限,也只能讀寫自己外部存儲(chǔ)的私有目錄,就是Android/data/對應(yīng)應(yīng)用包名 下的相關(guān)目目錄。除此之外任何目錄的讀寫都會(huì)被拒絕,并提示 android Permission denied。 解決方案 在 AndroidManifest.xml 文件中,在application標(biāo)簽中添加如下屬性 and

    2024年02月03日
    瀏覽(89)
  • Android存儲(chǔ)權(quán)限完美適配(Android11及以上適配)

    Android存儲(chǔ)權(quán)限完美適配(Android11及以上適配)

    一、Bug簡述 一個(gè)很普通的需求,需要下載圖片到本地,我的三個(gè)測試機(jī)(榮耀Android10,紅米 11 和小米Android 13都沒有問題)。 然后,主角登場了,測試的三星Android 13 死活拉不起存儲(chǔ)權(quán)限彈窗。 想了下,三星的系統(tǒng)可能和小米的系統(tǒng)做了些區(qū)別。于是就是看了下存儲(chǔ)權(quán)限的版

    2024年02月06日
    瀏覽(17)
  • 【Android 】android13 新權(quán)限獲取 讀寫文件權(quán)限

    【Android 】android13 新權(quán)限獲取 讀寫文件權(quán)限

    android13 新權(quán)限獲取 參考:Android 13(API 33)讀寫SD卡權(quán)限的調(diào)整適配 - Mr,Han - 博客園 android在 獲取文件讀寫權(quán)限(尤其是音視頻、圖片等等資源)的權(quán)限獲取邏輯更換了。 必須申請如下權(quán)限: 這段邏輯可以看上面的文件拷貝類的代碼:

    2024年02月04日
    瀏覽(65)
  • Android權(quán)限申請之動(dòng)態(tài)申請權(quán)限

    Android權(quán)限申請之動(dòng)態(tài)申請權(quán)限

    先上圖: 對于一些危險(xiǎn)權(quán)限在AndroidManifest清單文件中申請之后,還需要得到用戶的許可并打開,才算是真正的開啟了這個(gè)權(quán)限。所以可以使用動(dòng)態(tài)申請權(quán)限,對于某個(gè)功能,如果需要開啟某個(gè)權(quán)限,在用戶使用它之前,彈窗提示用戶是否要開啟這個(gè)權(quán)限。 動(dòng)態(tài)申請權(quán)限大致

    2024年02月11日
    瀏覽(22)
  • Android動(dòng)態(tài)申請權(quán)限(運(yùn)行時(shí)申請權(quán)限)

    Android動(dòng)態(tài)申請權(quán)限(運(yùn)行時(shí)申請權(quán)限)

    目錄 1.需要?jiǎng)討B(tài)申請權(quán)限的原因 2.Android權(quán)限動(dòng)態(tài)申請 1.需要?jiǎng)討B(tài)申請權(quán)限的原因 ? 首先,Android權(quán)限分為大致兩類,一類是普通權(quán)限,一類是危險(xiǎn)權(quán)限,準(zhǔn)確地講其實(shí)還有一些特殊的權(quán)限,不過這些權(quán)限使用得相對較少,我們大致跳過.對于普通權(quán)限,系統(tǒng)會(huì)自動(dòng)幫我們進(jìn)行授權(quán),由于

    2024年02月20日
    瀏覽(32)
  • Delphi v11 安卓權(quán)限申請

    問題 Delphi 10.4 的安卓權(quán)限申請代碼,在 Delphi 11 下面編譯無法通過。 原因 原因是里面有幾個(gè)變量類型的定義有所不同。 上述代碼是 Delphi 10.4 的,里面有兩個(gè)類型需要更改: 1.? TArraystring 更改為: TClassicStringDynArray ; 2.? TArrayTPermissionStatus 更改為: TClassicPermissionStatusDynArr

    2024年02月20日
    瀏覽(23)
  • Android之動(dòng)態(tài)申請權(quán)限

    Android之動(dòng)態(tài)申請權(quán)限

    Android 6.0 (API 23) 之前應(yīng)用的權(quán)限在安裝時(shí)全部授予,運(yùn)行時(shí)應(yīng)用不再需要詢問用戶。在 Android 6.0 或更高版本對權(quán)限進(jìn)行了分類,對某些涉及到用戶隱私的權(quán)限可在運(yùn)行時(shí)根據(jù)用戶的需要?jiǎng)討B(tài)授予。 Android 6.0以下,在AndroidManifest.xml文件中注冊權(quán)限即可。 Android 6.0及其以后,既

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包