首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UsbManager.getDeviceList()返回空

UsbManager.getDeviceList()返回空
EN

Stack Overflow用户
提问于 2013-04-15 10:40:39
回答 4查看 11.2K关注 0票数 5

我想通过编写以下代码来使用UsbManager接口:

在活动代码中:

代码语言:javascript
复制
        UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

        HashMap<String, UsbDevice> deviceList = manager.getDeviceList();

        Log.d(TAG, "size =" + deviceList.size());

在清单中:

代码语言:javascript
复制
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

    <permission android:name="android.hardware.usb.host" >

</permission>

<uses-feature android:name="android.hardware.usb.host" android:required="true" />

我也关注了this question,检查了我的Galaxy Sii9100G。它确实拥有/system/etc/permissions/android.hardware.usb.host.xml和正确的权限。

但是当我尝试闪存驱动和鼠标时,manager.getDeviceList()总是返回零。

有没有人能给我一些建议?

EN

回答 4

Stack Overflow用户

发布于 2014-11-04 14:15:45

你的问题没有通用的答案。这在很大程度上取决于您的设备。模拟器根本不支持USB主机,有些设备需要root用户才能支持,有些设备开箱即可支持USB主机。

编辑

我最近针对TF-MID1007G设备的这个问题完成了自己的调查。也许这会对以后的人有所帮助。有一个很棒的应用程序可以诊断device - USB Host Diagnostic的USB主机能力(顺便说一句,非常感谢作者,你真的拯救了我的一天)。这个应用程序显示了usb主机对设备的支持,在我的例子中,它是内核支持的usb主机,但仅限于第三方应用程序。幸运的是,这个应用程序还可以(仅在有根的设备上)修复您的设备系统,以增加与usb主机一起工作的能力。即使在重置设备后,此修复仍然有效。在此修复后,我的应用程序可以枚举usb主机设备,请求权限等,如标准android API中所述。因此,启用此设备上支持普通usb主机的操作列表很简短

带有VRoot或百度根的

  • 根设备(我用的是最后一个,因为我附近没有任何窗口)
  • 安装USB Host Diagnostic
  • Start诊断程序,并在它不成功完成后请求根权限并确认您修复系统,修复后同意它
  • ,修复后,确定结论部分包含行第三方应用程序-Full
  • 毕竟我重置了我的设备以删除根(一般情况下很危险,并且百度根总是要求安装一些膨胀软件)

<代码>F215

现在,此设备已准备好与USB设备配合使用。

票数 2
EN

Stack Overflow用户

发布于 2013-04-15 12:22:49

这段代码对我来说很好用。尽管您的代码看起来很相似,但您可以重新检查。

代码语言:javascript
复制
  UsbManager usbManager = (UsbManager) getSystemService(USB_SERVICE);
  HashMap<String, UsbDevice> map = usbManager.getDeviceList();
  Iterator<UsbDevice> it = map.values().iterator();

  while(it.hasNext()) {
    UsbDevice device = it.next();
    // use device info
  }
票数 0
EN

Stack Overflow用户

发布于 2013-10-04 18:44:09

您可能正在尝试运行android仿真器but.....according以获取仿真器:http://developer.android.com/tools/devices/emulator.html#limitations的Android规范。

仿真器的功能限制包括:

代码语言:javascript
复制
No support for USB connections

因此,只有使用真实设备才能测试UsbManager

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

https://stackoverflow.com/questions/16006889

复制
相关文章

相似问题

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