[英]what exactly opt out from scoped storage by enabling the legacy external storage on Android 10 with target SDK 29
在定位到 SDK 29 時,可以選擇選擇范圍存儲。通過在清單文件中添加 android:requestLegacyExternalStorage="true" 來啟用舊存儲。 我的應用程序的現有功能不適用於 Android 10。
例如
我想知道通過啟用傳統外部存儲從范圍存儲中選擇退出的確切內容。
因為根據我的理解,我們仍然必須在 android 10 上使用新的外部存儲分類。
存儲路徑的 DownloadManager 代碼片段:
DownloadManager.Request request=new DownloadManager.Request(Download_Uri);
request.setDestinationInExternalPublicDir("/mappfolder/subdirectory", filename);
清單應用程序標簽:
<application
android:requestLegacyExternalStorage="true"
android:name=".base.module.view.MyApplication"
android:allowBackup="false"
android:icon="@drawable/im_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="false"
android:theme="@style/myThemeNOActionBar"
tools:replace="android:supportsRtl"
>
API 29 中不推薦使用 getExternalStorageDirectory()。請使用 getExternalFilesDir()。
如果您使用舊的外部存儲,您的應用程序需要權限,例如 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE。 但是很快就會強制執行范圍存儲,因此您應該更改代碼以使用 MediaStore API 和/或存儲訪問框架。
通過啟用舊存儲,可以使用舊文件系統 API 將特定於應用程序的目錄創建到公共目錄中,並訪問公共存儲以讀取/寫入文件。
但是使用 DownloadManger,無法將特定於應用程序的目錄創建到公共存儲中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.