问题描述
我在 Google Chrome 中使用 webusb API 尝试将设备连接到浏览器。它适用于 webserial API,但我无法让它与 webusb API 一起使用。
- 我使用的是 HTTPS(Github 页面)
- 我为我的浏览器启用了
#new-usb-backend
- 我可以打开设备并选择配置,但 device.claimInterface(0) 不起作用(我可以确认 0 是接口编号)。
- 该设备的两个接口似乎都没有声明
我看到 chrome://device-log
的错误是
Failed to claim interface: Access denied (insufficient permissions)
我不知道从哪里开始。我将不胜感激。
谢谢。
解决方法
device.claimInterface(1) 有效。我听说在某处 mac 自动声明接口。也许第一个接口被声明了,尽管 api 另有说明。无论如何,关于第二个界面的某些东西在第一个中不起作用。
,该错误消息表明存在已声明该接口的现有驱动程序,或者(仅限 Windows)WinUSB 驱动程序尚未连接到该接口,以便您的浏览器等应用程序能够声明该接口。在 Windows 上,您可以使用 Zadig 工具强制 Windows 更改用于 USB 设备的驱动程序。
如果可以使用 Web Serial API 打开设备,则表明操作系统已经为设备加载了串行驱动程序,因此它已声明至少部分设备接口。
为什么,如果 Web Serial API 可以连接到您的设备,您是否尝试使用 WebUSB API 连接到它?您现在使用的是不提供与设备兼容的 USB 串行驱动程序的其他操作系统吗?