Android N及以后:USB OTG为何被隐藏?

5次阅读
没有评论

解决方案:Android 7及后续版本中USB OTG设备为何会被隐藏?

背景

随着Android系统的更新,尤其是从Nougat(7.x)开始,处理 USB-On-The-Go (OTG) 设备的方法发生了一些变化。部分第三方文件管理应用如ES File Manager和RhythmSoft File Manager HD等在Android Nougat及以上版本中无法直接显示USB OTG设备的内容。实际上,并没有将这些设备列出为可访问选项。唯一能够显示出这些外接存储设备的就是系统自带的文件管理器。

原因

从Android 6.0(Marshmallow)开始,对用户数据的安全性考虑提高了,对于第三方应用不再允许直接访问外置存储设备了。根据Stack Overflow上的答案(https://stackoverflow.com/a/33626495),其具体解释是:
– 在 Android 6.0中,并非所有插入的USB存储都是根设备, 因此它们被默认认为是非永久性的便携型设备。
– 第三方应用必须通过“存储访问框架”(Storage Access Framework) 与这些可以移动介质上的文件进行交互;这种直接访问是出于隐私和安全考虑而明确禁止的。

这就表示文件管理器需要依赖于“存储访问框架”,在某些情况下可能需要root权限才能实现完整功能,尽管这仅涉及读取而非写入操作。

解决方案

  • 根权限: 尽管非便携设备如微SD卡可以通过特定API直接访问而不会受到限制, 但对于第三方OTG设备的访问仍然可能依赖于是否安装了支持Storage Access Framework的应用,特别是Google文件管理器。对于需要更大控制权或者更高级功能的用户来说,root权限可能会是一个选择。

  • 选择合适的文件管理器: 在没有启用root的情况下,用户可以考虑使用像MiXplorer等第三方应用来替代官方提供的存储访问框架,以获得更为完善的功能支持。

回复与讨论

针对提问者担心Android系统剥夺了对OTG设备的自由访问权,并且默认选择官方文件管理器是否过于严格的问题:

  1. 调查表明,在某些版本中用户仍具有仅读取权限,但是官方应用由于采用了存储访问框架从而避免了一些限制问题。
  2. 也有其他替代方案如MiXplorer等可供尝试使用。

总结来说,虽然第三方应用直接访问OTG设备的灵活性降低,但通过适当的文件管理解决方案和技术,依然可以满足用户的部分需求。对于更加苛刻的功能要求,用户可能需要考虑启用root并采用支持更高级功能的应用程序。


该问题揭示了Android针对安全性提升的同时,也影响到了某些用户便捷性的变化。尽管提供了替代方案,但是仍然引起了对官方应用强制使用原因的讨论和反思。

正文完