You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android访问/storage目录需何权限?已获外部存储管理权限仍无法读取

问题解答

核心原因

  • /storage是系统的虚拟挂载容器目录,并非实际存储文件的分区目录,系统本身就限制了直接读取该目录的内容,哪怕你拥有外部存储管理器权限也无法突破这个限制。
  • 外部存储管理器权限(MANAGE_EXTERNAL_STORAGE)的作用是允许你访问其他应用的私有目录、管理外部存储内的文件,但不包含直接读取/storage顶层目录的权限——因为这个目录本身没有实际文件,只是用来挂载各种存储卷(比如内部存储模拟的/storage/emulated/0、SD卡对应的/storage/XXXX)的容器。

正确的访问方式

不需要额外申请权限,只需调整访问逻辑:

  • StorageManager类的getStorageVolumes()方法获取设备上所有可用的存储卷,再通过StorageVolumegetDirectory()方法拿到对应存储卷的根目录,这样就能正常访问具体的存储分区内容。
  • 避免直接硬编码/storage这类路径,不同设备的存储挂载结构可能存在差异,依赖系统API能保证兼容性。

内容的提问来源于stack exchange,提问作者user1785730

火山引擎 最新活动