【问题标题】:WebUSB access mass storage USB serial numberWebUSB访问大容量存储USB序列号
【发布时间】:2022-01-06 16:44:58
【问题描述】:

我正在尝试使用 WebUSB 接口访问 USB 大容量存储设备。我读到无法访问 USB 大容量存储设备:

  • “例如,如果设备是 USB 大容量存储设备, 接口不可声明,如果没有其他接口 设备将被隐藏。” (Link)
  • “以下 USB 接口类集,不应使用 WebUSB API 声明,将被 Blink 明确阻止:音频、视频、HID、大容量存储[...]”(Link)李>
  • “它不能。USB 大容量存储设备被系统的通用 USB 大容量存储类驱动程序声明,因此浏览器无法使用。” (Link)

我们目前正在将 USB 记忆棒用于应用程序的独立版本,其中 USB 记忆棒的序列号对于识别许可证很重要。对于我们的新软件,我还需要访问 USB 大容量存储设备的序列号,但最好是在浏览器中这样做。

Google Chrome 确实可以识别该设备,可以在此处看到。

但是当请求通过 WebUSB 访问设备时,它没有显示在列表中

我的代码很简单:

navigator.usb.requestDevice({ filters: [] }).then(e => {console.log(e)});

有没有办法使用浏览器界面访问 USB 大容量存储设备的序列号

【问题讨论】:

  • 谢谢,但如前所述,USB 设备未列出,因此无法访问 USBDevice.serialNumber。
  • 看起来大容量存储设备只能通过WebHID API 获得。但是HIDDevice 没有序列号 -> Serial number · Issue #34 · WICG/webhid · GitHub
  • 不幸的是,在使用 HID 时,设备也无法识别......(当然序列号问题仍然存在)

标签: javascript google-chrome usb webusb


【解决方案1】:

简短的回答是否定的。

内部页面about:usb-internals 应该显示在 WebUSB 中被阻止的接口。正如您在下面的屏幕截图中看到的那样,出于安全原因,WebUSB 中确实无法访问“大容量存储”USB 设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多