gpt4 book ai didi

android - UsbManager.getDeviceList() 返回空

转载 作者:太空狗 更新时间:2023-10-29 13:30:30 26 4
gpt4 key购买 nike

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

在 Activity 代码中:

        UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

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

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

在 list 中:

<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 SII 9100G。它确实有 /system/etc/permissions/android.hardware.usb.host.xml 和正确的权限。

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

谁能给我一些建议?

最佳答案

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

编辑

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

  • 用VRoot 或百度Root 的root 设备(我用的是最后一个,因为我附近没有任何窗口)
  • 安装USB Host Diagnostic
  • 开始诊断,未成功完成后请求 root 权限并确认您修复系统,同意
  • 修复后,确定 VERDICT 部分包含第 3 方应用程序 - 完整
  • 毕竟我重置了我的设备以删除 root(一般来说这很危险,而且百度 Root 总是要求安装一些英国媒体报道软件)

现在此设备已准备好与 USB 设备一起使用。

关于android - UsbManager.getDeviceList() 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006889/

26 4 0
文章推荐: java - Android 检查服务器是否响应 "is"JSON
文章推荐: java - 从排序对象数组到 ArrayList