如何从Android平板电脑与USB设备通信?

如何从Android平板电脑与USB设备通信?,android,usb,Android,Usb,从一年前开始,这看起来不像是一个普遍的要求,但平板电脑已经发展,希望操作系统也有了进步。 我需要从我的Curtis LT8025平板电脑上操作一个简单的USB中继卡,该平板电脑目前运行2.1补丁。 我也是Android和java的新手,所以相对来说比较无知 无需双向通信,只需向设备发出简单的串行命令 有什么建议吗 谢谢 Dave遗憾的是,目前还没有标准API来实现与Android设备的有线通信。不久前,我也面临着类似的问题(参见) 我能够成功地实现Commonware提供的解决方案。如果您需要更

从一年前开始,这看起来不像是一个普遍的要求,但平板电脑已经发展,希望操作系统也有了进步。
我需要从我的Curtis LT8025平板电脑上操作一个简单的USB中继卡,该平板电脑目前运行2.1补丁。
我也是Android和java的新手,所以相对来说比较无知
无需双向通信,只需向设备发出简单的串行命令

有什么建议吗

谢谢

Dave

遗憾的是,目前还没有标准API来实现与Android设备的有线通信。不久前,我也面临着类似的问题(参见)

我能够成功地实现Commonware提供的解决方案。如果您需要更多的帮助,请留下评论,我可以提供详细信息

  • 编辑(更多详细信息)-
基本上,我把这个问题的解决方法归纳为两种:

  • 修改Android源代码本身,以包含用于任何目的的自定义驱动程序,并将其安装到平板电脑中。由于它主要基于Linux,如果您为Linux开发驱动程序,只需稍加修改即可在Android中使用。此解决方案更易于开发,但如果您不自己提供平板电脑/手机,则在商业上不实用

  • 将USB设备用作主机,并在设备中实现ADB驱动程序/命令集。连接后,您可以发出“adb forward”来转发tcp端口,这样您就可以与Android应用程序交互,并在设备和应用程序之间进行双向通信


  • 我使用了第二种方法,它工作完美无瑕。但它只适用于制造USB主机设备的情况。对于USB奴隶来说,第一种方法是我唯一的方法。

    如果你使用的是一个串行设备,并且有能力通过原生序列与它交谈,你可能需要考虑IOIO(请参阅更多细节)。

    < p>我正在构建一个Android定制系统。我确实在USB上连接了几个设备。我想在OTG端口上连接一个设备,这个端口通常来自使用ADB的平板电脑。我放弃了。这是一场噩梦。我不认为你可以在OTG USB上使用ADB,这是目前的一个设备,并期望能够使用另一个设备,如USB到串行转换器。这意味着,当您想将端口用作主机时,您需要松开整个ADB工具链以进行调试。除此之外,平板电脑的USB OTG驱动程序在主机模式下可能没有得到很好的测试,因为它并没有真正以这种方式使用。这么多令人头痛的事

    我发现的简单方法是使用CPU上的第二个USB端口。这是一个普通主机端口(遗憾的是限制为12 Mbit/s)。不幸的是,我不知道是否有任何平板电脑有2个USB端口可从外部(一个OTG和一个主机)

    如果您使用两个USB端口(一个主机)进行设置,则可以编译为一个模块(drivername.ko),一个USB到串行转换器。内核源代码树中支持多个芯片组,我已经使用了其中的一些芯片组,并且可以正常工作


    希望这些信息对你有帮助

    @Vaayu-是的,请!如果您能提供任何建议,我将不胜感激。平板电脑有一个可拆卸的USB(和以太网)集线器。我把它用在闪存驱动器上,所以如果我能找到它的话,可能会有一些驱动程序级的支持。DaveCopy/proc/config.gz关闭设备并gzip-d它,然后查看除了大容量存储之外还提供了哪些(如果有的话)usb设备驱动程序来支持平板电脑附带的usb主机功能。还可以查看/lib/modules/which。对于不受支持的设备,您必须编译一个驱动程序——如果您有根和内核源代码,这是合理的。如果平板电脑支持usb键盘,并且您有root用户,那么您可以假装是键盘,然后通过敲击键盘LED来使用SPI,从而避免编译驱动程序?@chris-是否可以直接与\dev端口通话?我的平板电脑实现了\usb1\usb2\usbdev1.1\usbdev1.3和\usbdev2.1,这可能是需要研究的——例如,用于与linux开发机器上的手机通话的adb驱动程序似乎使用/dev/bus/usb在用户空间中工作——如果您想查看,adb在android.git.kernel.org上的“核心”包中(主机端和客户端都是从同一棵树上构建的,有很多条件编译)@chris找不到/proc/config,但在/proc/devices下我找到了以下字符设备:180 usb 188 ttyUSB和189 usb_设备它们似乎使用了我提到的第二种方法。好主意;用ADB嵌入式封装主机模块。看起来很完美。如果不想包含自己的usb主机模块,这非常棒。ADK是r在你问这个问题后几天-