簡體   English   中英

如何使用 Context.getExternalFilesDirs(String)、Context.getExternalCacheDirs() 獲取 /storage/emulated/0

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM