WebUSB 无法在某些 android 设备上声明设备

WebUSB can not claim device on some android devices

我有一个 PWA 在支持它的设备(基于 Chromium 的桌面浏览器)上使用 Web Serial,在所有其他设备上(基本上 Android)我尝试通过 [=15 回退到 Web USB =].

这适用于大多数设备,但在某些(至少一个)Android 设备上我无法声明该设备:

NetworkError: Unable to claim interface.

有趣的是,本机应用程序可以毫无问题地声明该设备。 有问题的设备是 Samsung Galaxy A5 运行 Android 8.

我检查了 chrome://device-log/ 一切正常:

[20:49:05] USB device added: id=1005 vendor=1155 "Betaflight", product=22336 "Betaflight STM32F411", serial="0x8000000", guid=9fa08f79-df5e-45bd-b757-c32ab1065bf9
[20:42:42] USB device removed: id=1004 guid=175af943-14ed-4591-a85b-b916a3a5584e
[20:40:42] USB device added: id=1004 vendor=1155 "Betaflight", product=22336 "Betaflight STM32F411", serial="0x8000000", guid=175af943-14ed-4591-a85b-b916a3a5584e

然后我用这个工具https://larsgk.github.io/webusb-tester/检查了一下,它确认有两个接口,但都没有声明:

2: Betaflight STM32F411 - VID: 0x0483, PID: 0x5740, S/N: 0x8000000
Interface 0 claimed: false
Interface 1 claimed: false

不幸的是,或者幸运的是,我找不到发生这种情况的任何其他设备,但由于它发生在一台设备上,所以它也会发生在其他设备上。

我不完全确定发生了什么,特别是因为本机应用程序可以声明设备。

我能找到的唯一相关问题 id - 据我所知,如果我理解正确的话,似乎并没有真正的解决方案。

有什么方法可以查看 Android 上声明设备的内容吗? 我能做些什么来强制在 Android 上申请设备吗?

我相信这是 and automatically detaching drivers on Android (tracked by Chromium issue 1099521) 的副本将解决问题。