2

我正在尝试通过 USB 将 Android 手机连接到配件(在本例中为 MacBook Pro)并使用 getDeviceList() 来验证连接是否被识别,并使用 toString() 将 UsbDevice 对象的描述打印到屏幕上以下代码:

//as host
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
String s = "";
while(deviceIterator.hasNext()){
   UsbDevice device = deviceIterator.next();
   manager.requestPermission(device, mPermissionIntent);
   Log.d("List Devices", device.toString());

   s += device.toString();
}

代码示例几乎直接来自 Android 开发者网站,但多部手机似乎无法识别任何外围设备。同样,我尝试将 Android 手机视为配件,但得到了类似的结果。任何帮助表示赞赏。

4

1 回答 1

2

关于附件模式,来自Android 开发人员指南

USB 附件模式允许用户连接专为 Android 供电设备设计的 USB 主机硬件。配件必须遵守 Android 配件开发工具包文档中概述的 Android 配件协议。

因此,只有实现了 AOA(Android 开放附件)协议的设备才会显示为UsbAccessory来自手机。

至于主机模式,手机本身一定是允许的,否则它不会真正起作用。诚然,在大多数 Android 手机/平板电脑上,开箱即用的完全支持主机模式似乎非常罕见。此答案演示了如何让您的手机/平板电脑完全支持主机模式(如果还没有的话),但请注意,这需要 root 访问权限。

于 2013-03-14T15:07:11.207 回答