我最近尝试使用Web API来获取我的USB设备。
但是,有一些问题。
首先,我在网上找到的示例都是关于Arduino的,我从没尝试过,所以不知道它是否可以在我的计算机上工作。我试图与智能手机SAMSUNG J7通信。我将VID和PID设置为与在设备管理器中找到的相同。然后,没有可以选择的设备,它仅显示“找不到兼容的设备”。
found nothing picture
然后,我删除过滤器部分为空白,以便获得所有设备。但是,我所得到的只是内部英特尔USB芯片之类的东西。我仍然找不到我的设备。
no filter picture
下面是我的JavaScript代码
const filters = [{}];
navigator.usb.requestDevice({
filters: filters
})
.then(usbDevice => {
console.log("Product name: " + usbDevice.productName);
console.log(usbDevice.manufacturerName);
})
.catch(e => {
console.log("There is no device. " + e);
});
谁能告诉我我在哪里错或对Webusb有任何误解
最佳答案
您应该能够连接到SAMSUNG J7,但是,如果您使用的是Windows,则需要确保系统正在加载WinUSB.sys驱动程序(这使得Chrome作为应用程序可以访问设备)。有关说明,请参见:https://developer.android.com/studio/run/win-usb
如果您要构建自己的设备(并仅使用手机进行测试),那么基于Arduino的示例是了解设备应实施哪些描述符以便利用WebUSB功能并与多种操作系统兼容的好起点(主要是只是Windows相关的问题)。
关于javascript - Webusb API navigator.usb.requestDevice,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50798704/