Android:USB通信Android< - >外部设备

时间:2012-10-04 09:33:43

标签: android usb serial-port

我找到了几个关于这个主题的线索,但在阅读之后我对我的问题一无所知。

我们有一个外部设备(类似tomtom设备,我的意思是,不是附件),我们想将此设备连接到Android设备。我们希望使用USB连接在外部设备和Android设备之间进行串行通信。 (此时我们使用RS232接口在外部设备和其他非Android设备之间进行通信,但外部设备可以使用USB电缆处理通信)

正如我所读,我们从3.1开始就支持USB API。

我们可以开发一个使用USB线与外部设备通信的Android应用程序吗?我的意思是,无论从哪种方式向设备发送数据和从设备接收数据,我们都希望将Android设备用作“显示器”。

非常感谢你。

3 个答案:

答案 0 :(得分:12)

我基本上和你描述的一样。我还处于早期阶段但是我在一些限制条件下进行了这样的沟通:

  1. 您需要支持USB Host API的设备。从Android 3.2开始,API本身已经存在,但并非每个设备似乎都支持它。看起来大多数运行> 4.0的设备应该可以工作,但仍然是每个设备检查你应该做的。我目前正在使用Acer Iconia Tab A510,到目前为止似乎有效,但有一些故障:例如,您在使用USB端口时无法为设备充电,因为它与充电器共享但与USB不兼容。
  2. 由于Neil说USB API是低级别的,所以我认为你需要一个USB芯片组的驱动程序(你身边的那个,即在你的设备中)。我在这里很幸运,因为有一个开源项目正在研究FTDI芯片组,这恰好是我选择的。如果这也是你的情况,你应该检查项目:
  3. 我希望这会有所帮助。正如我所说,我开始在这个生态系统中工作,我仍然需要绕过很多“地方”。

    干杯, Asier。

答案 1 :(得分:1)

目前adb界面是单向的。流量由主机PC使用adb控制。查看您的要求,看起来您可能需要打开源代码,重新调整USB驱动程序以允许双向通信。之后,您将需要设计自己的API,允许应用程序通过USB发送消息。这将需要大量工作,因为当前的Android模型不支持它。

答案 2 :(得分:0)

如果您将设备连接到的Android设备,支持主机模式,那么usb api可以提供帮助。然而,它是一个低级别的api,在usb请求缓冲区(URB)中进行讨论我现在正在使用这个api编写一个串行抽象,但它目前尚未准备好播出。

如果您的非Android设备能够充当主机,那么Royston建议adb路线可能最适合您,并且在api版本12后的api包中有一些如何执行此操作的示例。