繁体   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