6

我正在尝试学习 Android USB 主机/附件连接。我读过 android 设备可以充当 USB 主机或 USB 配件。因此,我创建了两个项目,其中一个是 USB 主机项目,另一个是 USB 附件项目。我将这些项目安装到两个不同的安卓设备上。其中一个有 USB 主机(设备 A)项目,另一个有 USB 附件(设备 B)项目。

我的问题是,我可以将 USB 主机项目连接到设备 B。我可以看到有关设备的所有信息。但在附件项目(设备 B)中,我看不到有关设备 A 的任何信息。

manager.getAccessoryList() 总是返回 null。我的 USB 配件项目代码在这里。

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

for (UsbAccessory accessory : manager.getAccessoryList()) {
    String list = " DESCRIPTION : " + accessory.getDescription() + " MODEL : " + accessory.getModel() + " MANUFACTURER : " + accessory.getManufacturer() + " SERIAL : " + accessory.getSerial();
    Toast.makeText(this, list, Toast.LENGTH_LONG).show();
}
4

2 回答 2

1

试试这个https://github.com/quandoo/android2android-accessory

即使我将附件列表设为 0。但在 github 项目中,他们首先从一个充当主机的 android 设备向其他附件设备发送了一些控制消息。发送控制消息后,我得到的附件列表非零。

于 2016-09-09T06:56:57.530 回答
0

这是因为当您将配件连接到设备 B 时,充当 USB 主机的配件必须实现 Android 开放配件协议 (AOAP)。请参阅通过 USB 连接由于设备 A(主机)没有实现 AOAP,设备 B 将拒绝与设备 A 进行握手尝试之外的通信。

于 2014-02-01T18:34:22.833 回答