Android应用程序,与插入USB端口的设备通信

时间:2010-09-27 12:45:06

标签: android usb communication wifi

我正在考虑一个Android应用程序(可能附带一个物理设备),我正在试图弄清楚这是否可行。

1)假设我将Android插入PC。 PC上安装的应用程序是否可以与手机中运行的应用程序通信?我只需要一个非常简单的数据交换,它甚至可以是单向的(只需将数据从手机推送到PC上的监听应用程序,无论何时手机需要,我都不需要从PC发送到手机的任何数据)。

当我插入电话时,手机给了我4个选项(充电,磁盘驱动器,HTC同步,网络共享),这让我觉得这不可行,但仍然值得一试。

2)PC上的应用程序是否可以通过任何其他方式与手机上的应用程序通信? (Wi-Fi,蓝牙等)。我猜wi-fi没有,因为任何一方都没有对方的IP(我希望这只是工作,而不是一直手动输入IP)。

3)如果我将一个设备插入手机底部的小USB端口(让我们说这是一个可以做任何事情的神奇设备,我不太关心这些细节,只要它是可行)。我可以让Android应用与该设备对话吗?

4)让手机与我制作的“设备”或PC上的应用程序通话的任何其他想法都非常受欢迎。 “通过网络”可能是一个选择(虽然必须有一个我作为中间人拥有的中央服务器,我相信)。但我更喜欢这两种设备之间的通信是直接的。

4 个答案:

答案 0 :(得分:18)

自问这个问题以来,世界发生了变化,答案现在是Android Open Accessory Development Kit。它不能解决现有USB设备的问题,但它可以创建可以使用Android设备的USB连接的新设备。

答案 1 :(得分:9)

Android设备和PC之间的通信可以再用一种方式。

通过USB连接ADB。

  1. 港口转发。
  2. 服务器套接字JAVA程序。
  3. 客户端套接字Android应用
  4. 通过此应用程序可以与我们在PC上运行的JAVA程序进行通信。

    http://www.anothem.net/archives/2010/10/15/android-usb-connection-to-pc/

答案 2 :(得分:4)

编辑:请注意,这个答案早于Android USB主机和附件API的可用性,以及在编写后发布的许多设备中的支持。

如果您打开手机上的USB调试并从PC上的sdk(开源)adb工具获取某些内容,他们就可以进行通信。电脑将不得不启动通信,但在会话中,它可能主要是双向的,甚至主要是从设备到电脑。有关adb shell和端口转发的信息,请参阅developer.android.com。根本不需要。

人们正在使用蓝牙与arduino嵌入式控制器通信。

使用root我已经让我的手机充当了USB主机,但是因为usb被占用所以我必须使用wifi来获取调试shell,这很痛苦。

有些手机在extusb连接器或音频线上有低压串行端口,但需要root和电平转换器才能使用它。

我一直在考虑的另一个想法是,在耳机插孔上做一个软件调制解调器,显然已经由日本某人为Android和iPhone做过。这不应该要求root。

答案 3 :(得分:3)

通过usb / wlan进行沟通,请看一下这个项目:http://code.google.com/p/android-notifier/