5

我发现了几个关于这个主题的线程,但是在阅读它们之后,我对我的问题没有一个清晰的想法。

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

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

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

非常感谢您提前。

4

3 回答 3

12

我基本上和你描述的一样。我仍处于早期阶段,但我在一些限制下管理了这样的沟通:

  1. 您需要支持 USB Host API 的设备。API 本身自 Android 3.2 左右就已经存在,但似乎并非所有设备都支持它。看起来大多数运行 >4.0 的设备应该可以工作,但仍然是您应该进行的每台设备检查。我目前正在使用 Acer Iconia Tab A510,到目前为止它似乎可以工作,但有一些故障:例如,您无法在使用 USB 端口时为设备充电,因为它与充电器共享但与 USB 不兼容。
  2. 正如 Neil 所说,USB API 是低级的,所以我认为您需要一个用于 USB 芯片组的驱动程序(您身边的那个,即在您的设备中)。我在这里非常幸运,因为有一个开源项目正在开发 FTDI 芯片组,而这恰好是我选择的。如果这也是你的情况,你应该检查项目:
    • FTDriver:https ://github.com/ksksue/FTDriver
    • Android USB Serial Monitor Lite:https ://github.com/ksksue/Android-USB-Serial-Monitor-Lite这个甚至在 Google Play 中有一个应用程序,所以你可以安装它并开始“播放”;-)

我希望这有帮助。正如我所说,我开始在这个生态系统中工作,但我仍然需要在许多“地方”中找到自己的方式。

干杯,阿西尔。

于 2012-10-17T08:53:54.663 回答
1

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

于 2012-10-04T11:18:49.353 回答
0

如果您要连接设备的 android 设备支持主机模式,那么 usb api 可以提供帮助。然而,它是一个在 USB 请求缓冲区 (URB) 中交谈的低级 api,我目前正在使用这个 api 编写一个串行抽象,但它目前还没有准备好播出。

如果您的非 android 设备能够充当主机,那么正如 Royston 建议的那样,adb 路由可能最适合您,并且在 api 版本 12 后的 api 包中提供了如何执行此操作的示例。

于 2012-10-08T00:08:24.847 回答