如何使用WebUSB声明界面?

时间:2016-12-06 13:45:28

标签: javascript google-chrome chromium webusb

使用navigator.usb.requestDevice获取对连接设备的访问权限后,我尝试按如下方式打开与连接设备的连接:

device.open()
    .then(() => device.selectConfiguration(1))
    .then(() => device.claimInterface(1))

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

DOMException: Unable to claim interface.

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

如何启动并运行连接?

编辑:

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

1 个答案:

答案 0 :(得分:1)

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

device.open()
    .then(() => device.selectConfiguration(1))
    .then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber))