Android开放附件协议与MTP

Android开放附件协议与MTP,android,usb,mtp,android-open-accessory,Android,Usb,Mtp,Android Open Accessory,我正在做一个项目,在这个项目中,我们的嵌入式系统同时支持Android开放附件协议和USB MTP。我们遇到了一个问题,当使用Android设备建立AOAP会话时,USB MTP无法工作。我基本上迷路了,我不知道是否有可能让这两个同时工作。 有谁能告诉我,是否可以同时激活USB MTP和AOA会话? 另外,我正在寻找AOA2.0规范?我们目前有来自第三方的AOA堆栈。 从哪里可以获得AOA规范? 谢谢。由于内部USB协议结构,不可能同时有两个USB会话。像android手机这样的USB设备可以实

我正在做一个项目,在这个项目中,我们的嵌入式系统同时支持Android开放附件协议和USB MTP。我们遇到了一个问题,当使用Android设备建立AOAP会话时,USB MTP无法工作。我基本上迷路了,我不知道是否有可能让这两个同时工作。 有谁能告诉我,是否可以同时激活USB MTP和AOA会话? 另外,我正在寻找AOA2.0规范?我们目前有来自第三方的AOA堆栈。 从哪里可以获得AOA规范?
谢谢。

由于内部USB协议结构,不可能同时有两个USB会话。像android手机这样的USB设备可以实现多个设备类,如大容量存储类、RNDIS主机(CDC类)等,。。。。这些设备类通常是在接口级别定义的。如果使用linux,请检查
lsusb-v
的输出,查看哪些接口可用,哪些接口处于活动状态

在USB协议中,只能有一个接口处于活动状态(afaik!)。这就是为什么你不能访问手机内存(大容量存储类)或使用ADB(ADB接口)的原因。当你被束缚(CDC类,在接口级别上定义)时,你必须先切换接口。您可以通过代码切换接口,但是主机必须卸载内核模块/驱动程序并加载新的内核模块/驱动程序,即如果您从MTP USB接口切换到AOAP USB接口


通常,在USB协议中,任何通信都是由主机设备(本例中为附件)启动的,如果您在设备上切换USB接口,主机必须做出反应并加载合适的内核模块/驱动程序,请参阅。也许可以查看附件中加载了哪些内核模块/驱动程序

谢谢。你知道我在哪里可以下载AOA规范吗?不,只有上的文档。可能给谷歌写邮件。。。。