【问题】
别人问的问题:
MainActivity.java部分代码如下: View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { if (v == buttonGetDevices) { UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); Log.i(TAG, "get device list = " + deviceList.size()); m_TxtVIewOfDeviceSize.setText(tv.getText() + "Device size:" + deviceList.size() + "\n"); Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); while (deviceIterator.hasNext()) { UsbDevice device = deviceIterator.next(); Log.i(TAG, "device name = " + device.getDeviceName()); } } } }; AndriodManifest.xml 文件部分代码如下: <uses-feature android:required="true" android:name="android.hardware.usb.host" /> <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" /> <uses-permission android:name="android.hardware.usb.host" /> 我想请问下你测试Andriod设备是什么型号啊?我主要想通过getDeviceList得到我的device进行通信的 — 在2013-12-13,"admin" <yyy> 写道: —–原始邮件—– 发送时间:2013年12月13日 星期五 收件人:"xxx" <zzz> 主题:Re:UsbManager.getDeviceList()老是为空 1.我之前,比如: 中,用UsbManager.getDeviceList()枚举,是可以找到Usb device的。 没遇到过,找不到设备的。 2.所以我也从来无需去关心 handheld_core_hardware.xml 3.你把你的源码发我看看。 BR,
在 2013-12-13 17:46:11,xxx <[email protected]> 写道: >主题:UsbManager.getDeviceList()老是为空 > >消息正文: >Android设备(HTC 608T)作为Host希望实现可以检测到USB设备插入,但是用UsbManager.getDeviceList()枚举不到Usb device。可以确定的是鼠标或键盘通过OTG线连接到手机的时候是可以看到鼠标指针和键盘输入的,有人说是要在/system/etc/permissionsin 下的handheld_core_hardware.xml文件里添加 <feature name="android.hardware.usb.host"/>, 请问下你测试的Android设备里的handheld_core_hardware.xml文件里是否真有 <feature name="android.hardware.usb.host"/>, 因为要修改文件需要去把手机给Root,而且是S-off才可以,太麻烦了。所以想请你确定下,谢谢 |
【解决过程】
1.我自己没遇到类似问题,但是可以网上找找,估计别人也有类似问题。
2.用google搜:
getDeviceList
果然就可以找到一些参考资料:
不过买啥帮助。
3.参考:
Android USB Host开发之manager.getDeviceList()获取不到设备列表
则是:
建议去试试其所提到的:
确认或添加对应的host的配置到android.hardware.usb.host.xml,/system/etc/permissions中,AndroidManifest.xml
类似的解释,这里也有:
Android USB host and hidden devices
4.这人遇到类似问题:
UsbManager.getDeviceList() returns empty
不过无解。
5.看到:
USB HOST 获取设备列表deviceList为什么一直为空?怎么发现设备呢?
也还是之前的建议。
【总结】
目前,还是建议去试试上面的那几个帖子的提示,去确认是否已经:
确认或添加对应的host的配置到android.hardware.usb.host.xml,/system/etc/permissions中,AndroidManifest.xml
如果还不行,再继续讨论。
另外,等我过两天有空,拿到对应的android设备和开发环境,再去确认一下我自己当前的环境是什么样的。
转载请注明:在路上 » 【记录】android中UsbManager的getDeviceList始终为空:检测不到插入的USB设备