Android USB主机模式和附件模式
我正在尝试学习Android USB主机/附件连接。我读到安卓设备可以充当usb主机或usb附件。因此,我创建了两个项目,一个是usb主机项目,另一个是usb附件项目。我将这些项目安装到两个不同的android设备上。其中一个有usb主机(设备A)项目,另一个有usb附件(设备B)项目 我的问题是,我可以连接usb主机项目到设备B。我可以看到有关设备的所有信息。但在附件项目(设备B)中,我看不到关于设备A的任何东西 manager.getAccessoryList()始终返回null。我的usb配件项目代码在这里Android USB主机模式和附件模式,android,usb,host,accessory,Android,Usb,Host,Accessory,我正在尝试学习Android USB主机/附件连接。我读到安卓设备可以充当usb主机或usb附件。因此,我创建了两个项目,一个是usb主机项目,另一个是usb附件项目。我将这些项目安装到两个不同的android设备上。其中一个有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();
}
这是因为当您将附件连接到设备B时,作为US B主机的附件必须实现Android开放附件协议(AOAP)。请参阅,由于设备A(主机)未实现AOAP,设备B将拒绝与设备A进行握手尝试以外的通信。尝试此操作 甚至我也得到了附件列表为0。 但在github项目中,他们首先将一些控制消息从一台作为主机的android设备发送到另一台作为附件的设备。
发送控制消息后,我得到的附件列表为非零。我也有同样的问题……你的意思是,两台android设备之间可以通过AOAP进行通信吗?我的理解是,支持AOAP的android设备和支持AOAP的USB附件(如arduino)之间可以进行AOAP通信。你能澄清一下吗?@Kozlov我的意思是,在USB附件模式下运行的Android设备只能与实现AOAP的USB主机通信。