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

时间:2011-05-09 03:21:07

标签: android usb

从一年前开始,Is there a way to communicate with USB devices on Android?这似乎不是一个常见的要求,但平板电脑已经发展,并且希望操作系统也有。 我需要从我的Curtis LT8025平板电脑上操作一个简单的USB中继卡,目前运行2.1补丁 我也是Android和java的新手,所以相对无能为力! 无需双向通信,只需向设备发出简单的串行命令即可。

有什么建议吗?

谢谢!
戴夫

3 个答案:

答案 0 :(得分:2)

可悲的是,目前还没有标准的API来实现与Android设备的有线通信。我前段时间遇到了类似的问题(见Android: Communicating with a USB device which acts as host)。

我能够成功实施CommonsWare提供的解决方案。如果您需要更多帮助,请发表评论,我可以提供详细信息。

  • 编辑(更多细节) -

基本上,我缩小了两个可能解决此问题的方法:

  1. 修改Android源本身以包含您需要的任何用途的自定义驱动程序,并将其安装到平板电脑中。由于它主要基于Linux,如果你开发Linux的驱动程序,可以在Android中使用相同的一点修改。这种解决方案开发起来比较简单,但如果您不自己提供平板电脑/手机,则不具备商业实用性。

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

  3. 我使用了第二种方法,它完美无缺。但它唯一实用的,如果你正在制作USB主机设备。对于USB从站,第一种方法是我侦察的唯一方法。

答案 1 :(得分:2)

如果您使用的是串行设备并且能够通过本机串口与之通信,则可能需要考虑IOIO(有关详细信息,请参阅http://ytai-mer.blogspot.com/2011/04/meet-ioio-io-for-android.html)。

答案 2 :(得分:0)

我正在构建Android自定义系统。我确实在USB上连接了几个设备。我希望连接OTG端口上的设备,这个设备通常是从使用ADB的平板电脑中取出的。我放弃。这是一场噩梦。我不认为您可以在目前是设备的OTG USB上使用ADB,并期望能够使用其他设备,如USB转串口转换器。这意味着当您要将端口用作主机时,将松开整个ADB工具链以进行调试。最重要的是,你的平板电脑的USB OTG驱动程序在主机模式下可能没有经过很好的测试,因为它并没有真正使用过这种方式。所以很多头。

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

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

希望这些信息有用。