如何使用WebUSB声明界面?

Jor*_*aak 6 javascript google-chrome chromium webusb

使用navigator.usb.requestDeviceI尝试打开与连接设备的连接后,获取对连接设备的访问权限,如下所示:

device.open()
    .then(() => device.selectConfiguration(1))
    .then(() => device.claimInterface(1))
Run Code Online (Sandbox Code Playgroud)

它似乎成功地选择了配置,但是该claimInterface步骤将产生以下错误:

DOMException: Unable to claim interface.
Run Code Online (Sandbox Code Playgroud)

--disable-webusb-security在Ubuntu 16.10上运行Chrome 55.0.2883.75测试版,标志为root(没有那些我没有获得任何设备).

如何启动并运行连接?

编辑:

似乎cdc_acm驱动程序已经声明了接口,因为我试图连接的设备是一个串行设备,卸载驱动程序将允许您声明设备(但是在此之后它抱怨接口1不可用,以及0或2).

Sup*_*arp 2

选择配置后,您可以在以下位置找到正确的接口编号device.configuration.interfaces[0].interfaceNumber

device.open()
    .then(() => device.selectConfiguration(1))
    .then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber))
Run Code Online (Sandbox Code Playgroud)

  • @Supersharp这是我得到的:“无法声明接口:访问被拒绝(权限不足)”有什么建议吗? (3认同)