Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android USB主机模式和附件模式_Android_Usb_Host_Accessory - Fatal编程技术网

Android 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

我正在尝试学习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主机通信。