2011-09-21 112 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庫。