我有两部安卓手机用OTG电缆连接。显然,电缆迫使一旦手机进入主机模式,另一部成为外围设备。我希望能够在不切换电缆的情况下动态切换设备的主机/外围设备状态,OTG HNP 规范似乎表明这是可能的。我在这里找到了一些关于它的更多信息,但我不确定该去哪里 - https://android.googlesource.com/kernel/msm/+/android-msm-bullhead-3.10-marshmallow-dr/Documentation/usb/msm_otg.txt
是的,这是可能的。在非常技术性的文档上找到很好的发现。但是,Developer.android.com 网站和 USB.org 提供了有关实施的更多信息:
Android 3.1(API 级别 12(或更高版本平台直接支持 USB 配件和主机模式。USB 配件模式也作为附加库向后移植到 Android 2.3.4(API 级别 10(,以支持更广泛的设备。设备制造商可以选择是否在设备的系统映像中包含加载项库。 链接
据我所知,主机协商总是倾向于传统的主机控制器,如计算机。Android设备传统上是USB配件。但是,当您有一个带有主机(如 PC(和另一个附件的集线器时,会出现非常复杂的情况。似乎没有办法解决关于哪个设备应该是Android或PC主机的争议。例如,我将主机PC插入带有HUB和千兆以太网加密狗的Android设备。我永远无法与加密狗建立连接。事实上,国家警察似乎从未发生过。
最后,文档似乎建议主机负责操作 USB 流。似乎最有希望的是此处的文档,它建立了USBEndpoint的方向。