javascript - Webusb API navigator.usb.requestDevice
问题描述
我最近尝试使用 Web API 来获取我的 USB 设备。但是,有一些问题。
首先,我在网上找到的例子都是关于我从未尝试过的Arduino的,所以不知道它是否适用于我的电脑。我试图与我的智能手机 SAMSUNG J7 通信。我将 VID 和 PID 设置为与在设备管理器中找到的相同。然后,没有可以选择的设备,只显示“没有找到兼容的设备”。
然后,我将过滤器部分删除为空白以获取所有设备。但是,我得到的只是内部英特尔 USB 芯片或其他东西。我仍然找不到我的设备。
下面是我的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 相关的问题)。
推荐阅读
- video - 如何使用电子实现文件浏览器等视频缩略图
- mysql - 如何解决 docker 容器延迟
- angular - 对象中的角度排序项目
- c# - HttpWebrequest 中 HTTP 标头的严格排序
- session - Codeigniter 4如何取消设置会话
- angular - “字符串”类型不存在属性“replaceAll”
- php - 卷曲信息返回 Instagram API 的 HTTP 代码 404
- javascript - 当表单字段获得焦点时(通过鼠标单击或通过 Tab 键),我可以调用 DOM API 中的哪些事件回调
- nim-lang - 在 Nim 中使用与 Iterator 同名的 Proc 是否安全?
- android - 颤振中的302响应