2011-05-09 148 views
5

從一年前,Is there a way to communicate with USB devices on Android?這看起來並不是一個常見的要求,但平板電腦已經發展,並且希望操作系統也是如此。
我需要從我的Curtis LT8025平板電腦運行一個簡單的USB中繼卡,目前運行2.1補丁。
我也是Android和Java的新手,所以比較無所作爲!
不需要雙向通信,只需向設備發送簡單的串行命令即可。如何與Android平板電腦的USB設備進行通信?

有什麼建議嗎?

謝謝!
Dave

+1

的ADK發佈過幾天你問這個後 - http://developer.android.com/guide/topics/usb/adk.html – 2011-08-05 15:35:17

回答

2

不幸的是,目前還沒有標準的API來實現與Android設備的有線通信。我以前遇到類似問題(請參閱Android: Communicating with a USB device which acts as host)。

我能夠成功實施CommonsWare提供的解決方案。如果您需要更多幫助,請發表評論,我可以提供詳細信息。

  • 編輯(詳細信息) -

基本上,我縮小到兩種可能的方案來解決這個問題:

  1. 修改了Android源本身,包括不管出於什麼目的自定義驅動您需要並將其安裝在平板電腦中。由於它主要基於Linux,所以如果您開發Linux的驅動程序,則可以在Android中使用它,只需稍加修改即可。這種解決方案開發起來比較簡單,但如果您不自己提供平板電腦/手機,則不具有商業價值。

  2. 使您的USB設備充當主機並在設備中實現ADB驅動程序/命令集。連接後,您可以發出「adb forward」轉發tcp端口,以便您可以與Android應用進行交互,並在設備和應用之間進行雙向通信。

我使用了第二種方法,它完美地工作。但只有在製作USB主機設備時纔是實用的。對於USB從設備,第一種方法是我重新考慮的唯一方法。

+0

@Vaayu - 是的,拜託了!我會很感激你可以提供的任何指針。該平板電腦具有可拆卸的USB(和以太網)集線器。我使用它作爲閃存驅動器,所以假設我有一些驅動程序級別的支持,如果我能找到它的話。戴夫 – DBell 2011-05-09 14:21:29

+1

複製了/proc/config.gz關閉設備和gzip -d,然後再看看吧(如果有的話)提供了哪些超越大容量存儲USB設備驅動程序去與平板電腦的出貨USB主機功能。也看看/ lib/modules/whatever。對於不支持的設備,您必須編譯一個驅動程序 - 如果您擁有根和內核源,則這是合理的。如果平板電腦支持USB鍵盤,並且您擁有root權限,也許您可​​以假裝成鍵盤然後通過鍵盤LED指示器進行SPI對話來完成某些操作,從而避免編譯驅動程序? – 2011-05-09 17:59:02

+0

@chris - 是否可以直接與\ dev端口交談?我的平板電腦實現了\ usb1 \ usb2 \ usbdev1.1 \ usbdev1.3和\ usbdev2.1 – DBell 2011-05-09 21:39:26

2

如果您使用的是串行設備,並且能夠通過本機串口與其通信,則可能需要考慮IOIO(有關更多詳細信息,請參見http://ytai-mer.blogspot.com/2011/04/meet-ioio-io-for-android.html)。

+1

他們似乎正在使用我提到的第二種方法。好主意;包裝一個嵌入了ADB的主機模塊。看起來很好打磨。非常好,如果你不想包含你自己的USB主機模塊。 – Vaayu 2011-05-10 01:01:25

0

我正在構建一個Android自定義系統。我確實連接了USB上的多個設備。我期待在OTG端口上連接一臺設備,該設備通常會從您使用ADB的平板電腦中獲取。我放棄。這是一場噩夢。我不認爲你可以在目前是OTG USB的設備上使用ADB,並希望能夠使用其他設備,如USB轉串口轉換器。這意味着當您想將端口用作主機時,您會丟失整個ADB工具鏈進行調試。最重要的是,用於平板電腦的USB OTG驅動程序在主機模式下可能沒有很好的測試,因爲它沒有真正用於這種方式。所以很多頭球。

我發現的簡單方法是使用CPU上的第二個USB端口。這是一個普通的HOST端口(不幸的是限制在12Mbit/s)。不幸的是,我不知道是否有任何平板電腦與外部可用的2個USB端口(一個OTG和一個主機)。

如果你得到一個設定了兩個USB接口(一個主機),那麼它可以編譯爲模塊(drivername.ko),一個USB轉串口轉換器。在內核源代碼樹中支持幾種芯片組,我已經使用了其中的一些,並且它可以工作。

希望信息的該位是很有幫助的。

相關問題