2

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

4

1 回答 1

1

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

在 USB 协议中,只能激活一个接口(afaik !)。这就是为什么在tethering(CDC类,定义在接口级别)时无法访问手机内存(海量存储类)或使用ADB(ADB接口),您必须先切换接口。您可以做的是通过代码切换接口,但是主机必须卸载内核模块/驱动程序并加载新的内核模块/驱动程序,即如果您从 MTP USB 接口切换到 AOAP USB 接口。

一般来说,在 USB 协议中,任何通信都由主机设备(在这种情况下为附件)启动,如果您切换设备上的 USB 接口,主机必须做出反应并加载合适的内核模块/驱动程序,请参阅http://www。 Beyondlogic.org/usbnutshell/usb5.shtml。也许检查附件加载了哪些内核模块/驱动程序

于 2017-04-29T13:26:40.687 回答