首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从安卓平板电脑申请WebUSB接口(设备或资源正忙16)。Windows工作正常

无法从安卓平板电脑申请WebUSB接口(设备或资源正忙16)。Windows工作正常
EN

Stack Overflow用户
提问于 2019-07-30 05:01:49
回答 2查看 707关注 0票数 0

我正在尝试通过WEBUSB将USB热敏打印机连接到我的安卓平板电脑(三星Galaxy Tab S4,安卓9),但在尝试声明接口时出现以下错误:“无法声明接口0:设备或资源忙(16)”

我发布了代码,但我认为问题不在这里,因为它在Windows10上运行良好(在使用Zadig将默认驱动程序更改为WinUSB之后):

代码语言:javascript
复制
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本身已经拥有了这个接口。我还试图启用开发人员选项,以查看其中是否有有用的东西,但我没有找到任何东西。

任何帮助都是非常感谢的。

垫子

EN

回答 2

Stack Overflow用户

发布于 2019-07-30 05:39:48

当打印机插入电源时,lsusb -v会说什么?ls /sys/bus/usb/devices还应该列出实际的配置。也许可以尝试将USB端口模式设置为“只充电”(因为这样就不会加载任何特定的内核驱动程序)……或者试试demo

票数 0
EN

Stack Overflow用户

发布于 2019-08-08 01:15:03

接口描述符显示这是一个USB打印机类设备(协议2表示双向)。据我所知,Android没有为内核内置的USB接口类提供驱动程序。可能发生的情况是,设备上有另一个应用程序(如打印机服务)已声明此接口。检查系统设置中的“打印”部分,看看您是否安装了任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57261350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档