首页 > 解决方案 > 在android中浏览文件系统

问题描述

我正在开发一个用户可以选择文件夹的应用程序。这些文件夹可以在外部存储器或可移动存储中。所以我需要显示设备的外部存储器和可移动存储的根文件夹。我试过了

context.dataDir
context.filesDir
context.externalCacheDir
context.getExternalFilesDir(null)

但它们都指向特定于 myapp 的外部/内部存储,而不是设备前:/storage/emulated/0/Android/data/com.example.myapp/files 所以我坚持如何在 android 中显示文件系统的根位置?

注意:stackoverflow 中的其他相关问题的答案已Environment.getExternalStorageDirectory()被贬低,android 文档建议使用 MediaStore,但不清楚如何使用它浏览文件系统

标签: android

解决方案


Android 已更新其共享存储政策,允许应用根据文件类型/可见性而不是文件系统中的位置来请求文件。因此,要构建需要传统文件系统浏览功能的应用程序,我们需要请求MANAGE_EXTERNAL_STORAGE权限并使用ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION意图操作将用户引导到系统设置页面,他们可以在其中启用允许访问以管理所有文件。这仅适用于具有以下用例的应用程序

  • 文件管理器
  • 备份还原
  • 防病毒应用程序
  • 文档管理应用

https://developer.android.com/training/data-storage/manage-all-files#all-files-access-google-play


推荐阅读