2011-09-21 69 views
3

我正在尝试设置Nexus One手机以与运行在Linux平板电脑上的应用程序进行通信。Android USB配件与Linux系统通信

在手机方面,Nexus One是Android 2.3.4,因此它具有USB附件库。我已根据http://developer.android.com/guide/topics/usb/accessory.html上的说明创建了应用程序Android。我已通过将其插入Microchip附件开发入门套件并连接到该应用程序来验证Android应用程序的工作原理。

在Linux的一方面,我已经配置它向usbserial模块注册Nexus设备,并在手机插入时创建一个ttyUSB0设备。我已经验证了我的应用程序读取并正确写入了ttyUSB0。我通过将它连接到另一台计算机上的串行端口并通过minicom观看数据来完成此操作。

不幸的是,Android开发者网站不包括主机设备(在我的情况下,我的Linux平板电脑)需要执行的任何配置。换句话说,Linux需要遵循什么协议来与手机通信?

+0

在Linux平板电脑方面,Linux是否可以识别Nexus One?它出现在'lsusb'输出中吗?如果是这样,Linux会看到哪些USB描述符(查看'/ sys/bus/usb/devices/...')? –

+0

@AdrianCox是的,Linux可以识别设备,我可以在usbserial模块中注册它来创建一个ttyUSB节点。我也能够读取/写入成功。我已经确定问题是Linux应用程序使用电话针对tx/rx数据所遵循的协议。不幸的是,在这一点上,我不确定如何弄清楚需要做什么。我试图浏览正在工作的PIC上运行的Microchip应用程序,但即使遵循它们正在使用的协议,似乎也无法正常工作。我必须错过一些东西,只是不知道什么... – linsek

+0

我开发了USB驱动程序,但我不熟悉Android。 Linux主机是与Nexus One(共享)的调制解调器部分通话,而不是与应用程序代码通话?您可以通过在Linux下打开ttyUSB节点的终端,然后键入调制解调器命令(如ati)来检查此问题。 –

回答

2

这是不可能的。进一步研究后,无法使用串行USB通信与Android设备进行通信。要通过Linux与Android应用程序进行通信,请使用libusb-1.x库。