[英]How to get the /storage/emulated/0 using Context.getExternalFilesDirs(String), Context.getExternalCacheDirs()
如果我使用Environment.getExternalStorageDirectory()
,我得到 /storage/emulated/0 正確。 但是 getExternalStorageDirectory 已被棄用,所以我試圖使用Context.getExternalFilesDirs(String), Context.getExternalCacheDirs()
來實現這一點。 我越來越喜歡/storage/emulated/0/Android/data/com.example.statussaver
。 基本上它返回當前的應用程序文件目錄。 如何使用上下文 Api 獲取 /storage/emulated/0。 提前致謝
您不想再獲得該值,因為從文檔中
當應用程序以
Build.VERSION_CODES.Q
為目標時,從此方法返回的路徑不再可供應用程序直接訪問
這意味着即使你走上了同樣的道路,它對你也毫無用處。 根據您的用例,您應該改用https://developer.android.com/training/data-storage/shared中列出的策略之一。
Android 提供 API 用於存儲和訪問以下類型的可共享數據:
- 媒體內容:系統為這些類型的文件提供標准的公共目錄,因此用戶可以為所有照片提供一個公共位置,為所有音樂和音頻文件提供另一個公共位置,等等。 您的應用可以使用平台的
MediaStore
API 訪問此內容。- 文檔和其他文件:系統有一個特殊的目錄用於包含其他文件類型,例如使用 EPUB 格式的 PDF 文檔和書籍。 您的應用可以使用平台的存儲訪問框架訪問這些文件。
- 數據集:在 Android 11(API 級別 30)及更高版本上,系統緩存多個應用程序可能使用的大型數據集。 這些數據集可以支持機器學習和媒體播放等用例。 應用可以使用
BlobStoreManager
API 訪問這些共享數據集。有關這些 API 的更多信息,請參閱以下指南:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.