Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 为什么这个特定的设备不​​能被UsbManager.getDevicesList()枚举?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
正如标题所述,我在使用UsbManager.getDeviceList()的USB功能Android手机上列出特定USB设备的麻烦.我没有麻烦在这个和其他手机上列举和与其他USB设备通信,但是找不到这个特定的USB设备.它也不能被列为第三方应用程序,如 USB Device Info.

以下是在PC上枚举的USB属性.我已经与设备制造商进行了沟通,该厂商已经确认外部公司认证该设备符合USB 2.0规范.最初,我怀疑Android的设备遭到拒绝,因为它忽略了其他兼容设备所包含的以下字段:iManufacturer,iProduct和iserialnumber.但是,从USB 2.0 Spec第9.5节的摘录看,似乎这些领域是不必要的:

那么我的问题是什么导致UsbManager拒绝这个USB设备的枚举?而且,更重要的是,有什么我可以做的,强制Android枚举这个设备?理想情况下,我对一个不@R_944_6191@访问权限的解决方案感兴趣,但并不一定是破产者.

编辑:一些示例代码.

UsbManager usbManager = (UsbManager) getSystemservice(Context.USB_serviCE);
HashMap<String,UsbDevice> deviceList = usbManager.getDeviceList();
// When I plug in this USB device,deviceList is empty. 
// Other devices are discoverable,however.

编辑2:我已经测试了一些更多的手机.我已经使用以下电话成功列举了USB设备:

>注2
> LG-​​V400

以下设备无法枚举设备:

> Nexus 5
> Galaxy S4,S5,S6
> LG G2,4G LTE

编辑3:Here are the logs在插入USB设备后,在Nexus 5上调用adb sHell dmesg.您可以清楚地看到第4-16行手机无法枚举设备.

解决方法

将uSB设备连接到Android手机后,断开连接并将手机连接到计算机,以便您可以使用adb sHell dmesg查看内核日志.如果您看到设备显示在内核日志中,那么手机正在识别它,我不知道为什么它不会被UsbManager返回.我怀疑的是它不会显示在内核日志中,否则会出现错误.这可能意味着该设备与手机的OTG控制器不兼容,或者没有足够的电力正常工作.

大佬总结

以上是大佬教程为你收集整理的android – 为什么这个特定的设备不​​能被UsbManager.getDevicesList()枚举?全部内容,希望文章能够帮你解决android – 为什么这个特定的设备不​​能被UsbManager.getDevicesList()枚举?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。