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

Dan*_*ola 53 usb android communication wifi

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

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

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

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

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

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

Jam*_*ore 18

自问这个问题以来,世界已经发生了变化,答案现在是Android开放附件开发套件.它不能解决现有USB设备的问题,但它可以创建可以使用Android设备的USB连接的新设备.


Nob*_*oby 9

Android设备和PC之间的通信可以通过多种方式实现.

通过USB连接ADB.

  1. 转发端口.
  2. 服务器套接字JAVA程序.
  3. 客户端套接字Android应用程序.

通过这个应用程序可以与我们在PC上运行的JAVA程序进行通信.

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


Chr*_*ton 5

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

如果您在手机上打开 USB 调试,并且在 PC 上有一些源自 sdk(开源)adb 工具的东西,则它们可以进行通信。pc 必须发起通信,但在会话内,它可以是双向的,甚至主要是从设备到 pc。有关 adb shell 和端口转发,请参阅 developer.android.com。不需要根。

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

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

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

我一直在想的另一个想法,在耳机插孔上做一个软件调制解调器,显然日本的某个人已经为 android 和 iphone 做了。这应该不需要root。

  • 蓝牙串行(与耳机相比)在某个 android 版本之前可能无法使用,并且外部硬件很贵(比如 20-30 美元的零件,高达 150 美元才能获得 30 美元的集成控制器板),但是它不应该需要root。打开 USB 调试也不需要 root,但是是的,它并不适合所有人。基本上,您可以选择硬件成本或用户复杂性。 (2认同)

War*_*ith 3

对于通过 usb/wlan 进行通信,请查看此项目:http://code.google.com/p/android-notifier/

  • android-notifier 无法在 USB 模式下工作。支持Wifi和蓝牙模式。 (2认同)