我想连接我的Android手机到另一个USB主机(PC),并交换一些数据最简单的方式。读/写文件似乎有点奇怪。蓝牙或WLAN似乎也有一些开销。模仿串行设备对我来说更容易。简单的微控制器可以将自己暴露为USB串行设备,或者模仿USB键盘来说明一些事情,这似乎比扮演主机角色容易得多(除了需要为USB线和外部设备提供电源)
如果我正确理解的话,所有这些终端实用程序都使用USB并播放USB主机,寻找USB设备。(?)
我对Android编程非常陌生( Android中的第一个教程)
想要找到一些旧手机(三星FameGT-S6810P与Android 4.1.2)显然不支持OTG。
很明显我错过了什么,还有什么路要走?还是我的哪一个想法完全错了?提示,从哪里开始学习,是值得赞赏的。
发布于 2017-04-10 20:36:55
OTG意味着在手机上运行的ARM处理器必须能够成为USB主机(USB主机模式)(键盘、笔驱动器和其他可以附加的附件是USB协议中的USB设备(USB设备模式),在总线中只有一个主机模式的设备,所有其他设备都处于设备模式。
因此,不需要对USB串口( device类/虚拟COM端口)具有OTG /host模式功能,从理论上讲,手机也可以处于设备模式。在实践中,USB CDC ACM设备(USB设备模式)/虚拟COM端口的功能在android中根本没有实现,因此从PC到android的USB串行连接是不可能的,因为android还没有实现CDC ACM设备/虚拟COM端口的功能(在设备模式下)。
这就是为什么对于USB串行/虚拟COM端口来说,必须具备OTG /主机模式能力的原因。实际上,这是不必要的,而USB串口不可能的原因很简单,就是android没有在设备模式中实现成为CDC ACM设备/虚拟COM端口的功能。
如果一部手机能够成为USB主机(OTG功能),它必须拥有所有用于附加设备的内核模块,如用于大规模存储设备的usb-storage、用于CDC、ACM设备的cdc_acm (虚拟COM端口)、.
https://stackoverflow.com/questions/43330921
复制相似问题