WebUSB не может запрашивать устройство на некоторых устройствах Android

У меня есть PWA, использующий Web Serial на тех устройствах, где он поддерживается (настольные браузеры на основе Chromium), на всех остальных устройствах (в основном Android) я пытаюсь вернуться к 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

К сожалению или к счастью я не смог найти ни одного другого устройства, где это происходит, но раз это происходит на одном устройстве, то будет происходить и на других устройствах.

Я не совсем понимаю, что происходит, тем более, что родные приложения могут претендовать на устройство.

Единственная связанная с этим проблема, которую я смог найти с идентификатором этот - и, насколько я вижу, есть не совсем похоже на решение, если я правильно понял.

Есть ли способ увидеть, что утверждает устройство на Android? Есть ли что-нибудь, что я могу сделать, чтобы принудительно заявить права на устройство на Android?


person stylesuxx    schedule 23.03.2021    source источник


Ответы (1)


Я считаю, что это дубликат этой проблемы и автоматического отключения драйверов на Android (отслеживается Chromium < href="https://bugs.chromium.org/p/chromium/issues/detail?id=1099521" rel="nofollow noreferrer">проблема 1099521) решит проблему.

person Reilly Grant    schedule 25.03.2021