【问题标题】:WebUsb API on AndroidAndroid 上的 WebUsb API
【发布时间】:2021-02-22 13:42:54
【问题描述】:

我正在开发一个 PWA,它应该通过 Android 9.0 平板电脑通过 USB 与自定义设备进行通信。

当我第一次尝试声明接口时,PWA 无法声明它,因为它说接口很忙,如果我尝试通过本机应用程序使用 USB 设备,它可以正常工作。 我尝试通过本机应用程序使用 USB 设备,当我断开与本机应用程序的连接时,我能够通过 PWA 声明接口。

  • 我发现它可能不起作用,因为android设备自动声明接口,我可以直接从PWA做一些事情来声明使用的接口吗?
  • 如果不是,它可以与串行 API 一起使用吗?
  • 我对设备有一些控制权,也许我应该要求它实现另一个我可以声明的接口?

感谢您的帮助!

【问题讨论】:

  • 我已经很好地使用了 WebUSB API。但你是对的,你不能有两个或更多的客户声称 USB 设备。我对申请的汽车索赔一无所知。似乎本机应用程序将遵守与 PWA 相同的规则,并且只有在应用程序运行后才能声明 USB 设备。这里的问题是 API 记录不充分

标签: android progressive-web-apps webusb


【解决方案1】:

您可能遇到的是一个 Android 内核驱动程序或另一个声称该接口的本机应用程序。在 Android 上的 WebUSB 实现中,Chrome 目前在声明接口时不会尝试分离其他驱动程序。下面的问题正在考虑是否应该这样做。

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

如果您可以为设备添加一个不是标准 USB 接口类的接口(例如,CDC 或打印机),那么您可以避免系统自动为其附加驱动程序。

【讨论】:

  • 我觉得目前实现的接口是cdc-acm,平板上的原生应用正在实现。因为它实现了它,所以即使应用程序根本没有启动,内核也会声明接口?
  • 我相信本机应用程序正在请求内核释放接口。 Chrome 可以选择这样做,但不接受。我链接到的问题正在重新考虑是否应该这样做。
  • 嗨 Reilly,这个问题有什么更新吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 2018-07-31
相关资源
最近更新 更多