获取 WebUSB 中的可用 USB 设备列表 API

Get list of available USB devices in WebUSB API

在 WebUSB 中 API 有没有办法获取所有可用设备的列表?

我这里的情况是一台计算机可以有多个相同的设备,假设它有 2 个相同的打印机。我想避免显示要求用户 select 设备的弹出窗口,因此我想检查该设备是否已被认领。

我可以检查设备是否已被 运行 navigator.usb.getDevices(); 认领,但这仅列出已认领的设备,如果有相同的设备尚未认领我不知道.

所以问题是,如果我认为该设备已被声明且不显示对话框,用户将无法使用第二个设备,如果我从未考虑过声明的设备,我将不得不显示该对话框每一次。

没有API获取所有可用设备的列表。网站只能通过请求用户许可来访问设备(以及有关该设备的信息)。

我认为 navigator.usb.getDevices() 的作用有些混乱。它 returns 用户之前已授予站点访问权限的一组连接设备,无论它们是否已声明。

我建议应用程序做的是使用 navigator.usb.getDevices() 向用户显示可用的设备集,并有一个“添加设备”按钮,如果用户不可用,该按钮将调用 navigator.usb.requestDevice()查看他们正在寻找的设备。如果用户知道他们有两个设备并且需要连接到两个设备,他们会点击按钮两次。