介紹了 Android 12 內部存儲空間(Internal Storage),重點是在 Android 12 使用外部存儲空間(External Storage),在 Android 4 ~ Android 9 使用外部存儲器其基本上和內部存儲空間相同,但在 Android 10 開始,要使用外部存儲空間是比較嚴謹。
Android Studio - Android 外部存儲空間介紹(一百零八): |
外部存儲空間(External Storage)分區的特點:
- 外部分區並不總是可用。
- 保存在這裡的檔可能被其他程式訪問。
- 當使用者卸載 APP 時,系統僅僅會刪除 External 中的緩存目錄(Context.getExternalCacheDir())和file目錄(Context.getExternalFilesDir())下的相關檔。
- 需要申請 WRITE_EXTERNAL_STORAGE 或 READ_EXTERNAL_STORAGE 許可權。
外部存儲空間(External Storage)路徑:
Class |
Description |
屬性 |
|
getExternalFilesDir() |
/storage/emulated/0/Android/data/ packagename /files/fileName |
File |
Context |
getExternalCacheDir() |
/storage/emulated/0/Android/data/ packagename /cache/fileName |
File |
Context |
getExternalMediaDir() |
|
File |
Context |
getExternalStorageDirectory() |
/storage/emulated/0 |
String |
Environment |
getExternalStoragePublicDirectory() |
/storage/emulated/0/file |
String |
Environment |
getExternalStorageState() |
mounted |
String |
Environment |
getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) |
/storage/emulated/0/DCIM/fileName |
File |
Environment |
DIRECTORY_DCIM=DCIM |
DCIM |
String |
Environment |
DIRECTORY_MUSIC |
Music |
String |
Environment |
DIRECTORY_PODCASTS |
Podcasts |
String |
Environment |
DIRECTORY_RINGTONES |
Ringtones |
String |
Environment |
DIRECTORY_ALARMS |
Alarms |
String |
Environment |
DIRECTORY_NOTIFICATIONS |
Notifications |
String |
Environment |
DIRECTORY_PICTURES |
Pictures |
String |
Environment |
DIRECTORY_MOVIES |
Movies |
String |
Environment |
DIRECTORY_DOWNLOADS |
Download |
String |
Environment |
DIRECTORY_DOCUMENTS |
Documents |
String |
Environment |
Android 12 引入了以下存儲空間管理功能:
- 當應用檢索與給定文檔提供程式 URI 等效的媒體 URI 時,媒體庫支持 MediaDocumentsProvider。
- 用於錄音的目錄。
- MANAGE_MEDIA 許可權,此許可權允許應用執行媒體管理操作,而無需針對每項操作向使用者顯示確認對話方塊。
- 同時具有 MANAGE_EXTERNAL_STORAGE 許可權和 QUERY_ALL_PACKAGES 許可權的應用(例如檔管理應用)可以調用自訂 activity 來管理另一個應用的存儲空間,前提是另一個應用會創建自訂 activity。
沒有留言:
張貼留言