Android 11 文件管理訪問限制

隨著移動設備的普及,人們越來越依賴於它們來管理自己的數據。在 Android 11 中,文件訪問許可權得到了進一步的加強和限制,這是出於安全和隱私保護的考慮。本文將從多個方面對 Android 11 文件管理訪問限制進行詳細的闡述。

一、Android11文件管理訪問限制三星

三星在 Android 11 中引入了一項新功能,稱為「外部存儲訪問限制」(External Storage Access Restrictions),它可以限制應用程序訪問外部存儲器中的文件。開發人員可以將其視為「Scoped Storage」的擴展,它沒有徹底摒棄外部存儲,並允許開發人員以安全的方式訪問。

<application>
  <provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="com.example.fileprovider"
    android:grantUriPermissions="true"
    android:requestLegacyExternalStorage="false"
    android:exported="false">
    <meta-data
      android:name="android.support.FILE_PROVIDER_PATHS"
      android:resource="@xml/file_paths" />
  </provider>
</application>

在傳統的 Scoped Storage 中,開發人員無法訪問存儲在外部存儲器中的任何文件或目錄。但是,對於三星設備來說,這種限制被放鬆了。開發人員可以使用「外部存儲訪問限制」API請求訪問外部存儲器,這可以使他們能夠訪問與應用程序在同一位置下的文件,但是他們無法訪問其他應用程序的文件。

二、Android11文件管理夾

在 Android 11 中,文件夾也受到了保護。開發人員無法通過訪問路徑來訪問文件夾,這可以防止應用程序越權訪問用戶個人或敏感數據。

File downloadsFolder = new File(Environment.getExternalStoragePublicDirectory(
    Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());

相反,開發人員必須使用系統文件選擇器 API來訪問用戶的文件夾。這確保了用戶可以選擇要接受的文件,以及應用程序可以只訪問一小部分選定文件的內容。

三、Android11文件管理訪問限制iQOO

iQOO是一個中國製造商,他們也加入了 Android 11 的文件管理訪問限制。

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

像三星一樣,iQOO允許應用程序訪問與應用程序在同一位置下的文件,並使用外部存儲訪問限制 API 支持這一點。但是,如果您需要訪問其他應用程序的文件,則需要使用 SAF(Storage Access Framework)。

四、文件管理data訪問限制

文件管理 data 訪問限制是 Android 11 引入的另一個新功能。當您嘗試從一個應用程序中訪問另一個應用程序的 data 目錄時,系統會提示您獲取訪問許可權,this是一個新的操作系統級 API。

Intent intent = new Intent(Intent.ACTION_PICK_ACTIVITY);
intent.putExtra(Intent.EXTRA_TITLE, "選擇應用程序");
intent.putExtra(Intent.EXTRA_INTENT, new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER));
startActivityForResult(intent, REQUEST_CODE_PICK_APP);

當您的應用程序試圖訪問另一個應用程序的 data 目錄時,系統會在運行時請求訪問許可權,用戶可以選擇授予許可權或拒絕授權。這確保了用戶可以保護他們的敏感信息,同時允許具有權威和不受限制的應用程序訪問它們的數據。

五、Android訪問限制

Android 訪問限制是防止跨域訪問的一種機制。應用程序僅可以訪問由它們創建的內容或在其間提供了用戶明確的訪問許可權的目錄。

String directoryName = "MyDirectory";
File file = new File(getFilesDir(), directoryName);

if (!file.exists()) {
    file.mkdir();
}

String path = file.getAbsolutePath();

例如,如果您的應用程序創建了一個目錄,那麼只有您的應用程序才能訪問該目錄。其他應用程序無法訪問該目錄,這可以保護數據不受越權訪問。

總結

總之,Android 11 的文件管理訪問限制旨在保護用戶的隱私和安全,這對於移動設備上保存的數據尤為重要。開發人員應該遵循這些新的限制和規則來確保他們的應用程序與最新的操作系統兼容並能夠保護用戶的數據。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239907.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:19
下一篇 2024-12-12 12:19

相關推薦

  • Android ViewPager和ScrollView滑動衝突問題

    Android開發中,ViewPager和ScrollView是兩個常用的控制項。但是當它們同時使用時,可能會發生滑動衝突的問題。本文將從多個方面介紹解決Android ViewPa…

    編程 2025-04-28
  • Android如何點擊其他區域收起軟鍵盤

    在Android應用中,當輸入框獲取焦點彈出軟鍵盤後,我們希望能夠點擊其他區域使軟鍵盤消失,以提升用戶體驗。本篇文章將說明如何實現這一功能。 一、獲取焦點並顯示軟鍵盤 在Andro…

    編程 2025-04-28
  • 基於標籤文件管理

    本文將從文件管理的角度出發,深入探討基於標籤的文件管理。 一、標籤文件管理簡介 標籤文件管理即通過給文件打上標籤來進行分類和管理的方式。與傳統文件管理相比,標籤文件管理更加靈活方便…

    編程 2025-04-27
  • Android Studio HUD 實現指南

    本文將會以實例來詳細闡述如何在 Android Studio 中使用 HUD 功能實現菊花等待指示器的效果。 一、引入依賴庫 首先,我們需要在 build.gradle 文件中引入…

    編程 2025-04-27
  • Android和Vue3混合開發方案

    本文將介紹如何將Android和Vue3結合起來進行混合開發,以及其中的優勢和注意事項。 一、環境搭建 在進行混合開發之前,需要搭建好相應的開發環境。首先需要安裝 Android …

    編程 2025-04-27
  • Android Java Utils 可以如何提高你的開發效率

    Android Java Utils 是一款提供了一系列方便實用的工具類的 Java 庫,可以幫助開發者更加高效地進行 Android 開發,提高開發效率。本文將從以下幾個方面對 …

    編程 2025-04-27
  • Android JUnit測試完成程序自動退出決方法

    對於一些Android JUnit測試的開發人員來說,程序自動退出是一個經常面臨的困擾。下面從多個方面給出解決方法。 一、檢查測試代碼 首先,我們應該仔細檢查我們的測試代碼,確保它…

    編程 2025-04-25
  • Android Activity啟動流程

    一、Activity概述 Android應用程序是由許多Activity組成的。一個Activity代表一個屏幕上的窗口。用戶與應用程序交互時,Activity會接收用戶的輸入並處…

    編程 2025-04-25
  • Android單元測試詳解

    一、單元測試概述 單元測試是指對軟體中的最小可測試單元進行檢查和驗證。在Android開發中,單元測試是非常重要的一環,可以保證代碼的質量、穩定性以及可維護性。 在Android開…

    編程 2025-04-25
  • Android WebView載入本地HTML

    一、介紹 Android WebView是一個內置的瀏覽器,它允許開發人員在應用中嵌入網頁。使用WebView可以輕鬆地在應用程序中顯示本地或遠程的HTML內容。本篇文章將重點講述…

    編程 2025-04-24

發表回復

登錄後才能評論