我最近尝试使用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/

10-09 14:18