试图通过 webusb 将设备连接到网络,但是.. 无法声明接口:访问被拒绝权限不足

问题描述

我在 Google Chrome 中使用 webusb API 尝试将设备连接到浏览器。它适用于 webserial API,但我无法让它与 webusb API 一起使用。

  1. 我使用的是 HTTPS(Github 页面
  2. 我为我的浏览器启用了 #new-usb-backend
  3. 我可以打开设备并选择配置,但 device.claimInterface(0) 不起作用(我可以确认 0 是接口编号)。
  4. 该设备的两个接口似乎都没有声明

我看到 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 串行驱动程序的其他操作系统吗?