无法使用 Android 应用找到 USB 设备

Can't find usb devices using Android app

我要去run Android app on Chromebook directly to access connected usb devices, not from ARC Welder

我想使用 ES File Explorer 访问我的 USB 设备。

在普通 Android 设备上插入 USB OTG 线和 运行 ES 文件资源管理器,它可以按预期检测连接的 USB 设备。

但是,如果我在 Chromebook 上 运行 相同的 ES 文件资源管理器 Android 应用程序,它无法检测到连接的 USB 设备。在这种情况下,Chromebook 拦截了 USB 低级数据包。因为我可以使用 Chromebook 内置的文件资源管理器(这不是 Android 应用程序)来访问连接的 USB 设备。

顺便说一下,我正在使用 USB 存储 进行测试。

所以我的问题是,Android 应用如何访问 Chromebook 上连接的 USB 设备?当前行为是设计使然吗?有没有计划在未来为 Android 应用程序添加 USB 支持?

基于以下 Chromium 错误报告:

https://bugs.chromium.org/p/chromium/issues/detail?id=660189

总结: ChromeOS(容器 ARC)上基于容器的 Android 应用程序访问 external/USB 存储(读取和写入)似乎是一个已知问题,似乎在路线图上,但落后于其他优先事项。

更新2017-11-30:

Chromium 团队已在 ChromeOS 62(Chromium M-61?)或更高版本上实现了对 SD 卡的 USB On-The-Go 访问。这意味着那些希望他们的应用程序能够像在 phone 中使用 SD 卡一样使用 SD 卡的开发人员会感到失望。这是因为 Android 框架不考虑 'hot swappable' SD 卡,例如 Chromebook 上的 SD 卡。

此外,如果您想使用 MediaStore APIs 访问它,您仍然不走运,因为 Android 框架不支持访问可移动硬件。 Chromium 团队意识到并正在考虑以下选项:

旧票:https://bugs.chromium.org/p/chromium/issues/detail?id=789045&desc=3

那怎么办?

使用:Android Storage Access Framework

有关详细信息,请参阅 Removable Storage 上此通用软件的 post。

更新2019-09-04

ChromeOS 72 及更高版本支持 Android 的 MediaStore API,并且直接“/storage”支持访问 SD 卡上的内容。

参见:https://bugs.chromium.org/p/chromium/issues/detail?id=789045#c98

为支持 Android 的 Adoptable Storage 发行票证: https://bugs.chromium.org/p/chromium/issues/detail?id=917451