Я пытаюсь подключить USB-термопринтер к своему планшету Android (Samsung Galaxy Tab S4, Android 9) через WEBUSB, но при попытке запросить интерфейс я получаю эту ошибку: «Не удалось запросить интерфейс 0: устройство или ресурс заняты. (16) "
Я публикую код, но не думаю, что проблема здесь, поскольку он отлично работает в Windows 10 (после изменения драйвера по умолчанию на WinUSB с помощью Zadig):
this.printerProvider = navigator['usb'];
this.printerProvider.requestDevice({filters: []})
.then(selectedDevice => {
this.device = selectedDevice;
return this.device.open();
})
.then(() => {
return this.device.selectConfiguration(1);
})
.then(() => {
return this.device.claimInterface(this.device.configuration.interfaces[0].interfaceNumber);
})
.then(() => {
for (let ep of this.device.configuration.interfaces[0].alternate.endpoints) {
if (ep.direction == 'out') {
this.endpoint = ep;
console.log('USB PRINTER CONNECTED')
}
}
})
.catch((err) => {
console.log(err);
})
и фактически я получил тот же результат, используя прекрасный инструмент, представленный в этой статье: https://labs.mwrinfosecurity.com/blog/webusb/ этот инструмент в основном пытается заявить права на все интерфейсы.
Итак, я предполагаю, что Android сам потребовал интерфейс. Я также попытался включить параметры разработчика, чтобы увидеть, есть ли там что-то полезное, но ничего не нашел.
Любая помощь очень ценится.
Мат