安卓USB開發教程 USB Host 與 Accessory

SoldierJazz2019發表於2017-06-26

安卓通過兩種模式:USB Accessory USB Host 模式支援多種 USB 外設與安卓 USB 配件(實現安卓配件協議的硬體)。在 USB 配件模式下,外部 USB 硬體充當 USB 主機。配件例項可能包含機器人控制器、擴充套件塢、診斷和音樂裝置、售貨亭、讀卡器以及更多。這賦予了沒有主機能力的安卓裝置與 USB 硬體互動的能力。 Android USB 配件必須設計為與 Android 裝置配合使用,並且必須遵守 Android 配件通訊協議。在 USB 主機模式下,安卓裝置充當主機。裝置例項包含數位相機、鍵盤、滑鼠和遊戲手柄等。專為各種應用和環境設計的 USB 裝置仍然可以與可以正常與裝置通訊的 Android 應用程式進行互動。

圖1顯示了兩種模式之間的差異。 當 Android 裝置處於主機模式時,它作為 USB 主機併為匯流排供電。 當 Android 裝置處於 USB 配件模式時,連線的USB硬體(在這種情況下為 Android USB 配件)充當主機併為匯流排供電。

圖1. USB Host 與 Accessory 模式

圖1. USB Host 與 Accessory 模式

Android 3.1(API級別12)或更新的平臺直接支援 USB 配件和主機模式。USB 配件模式也作為附加庫追溯到 Android 2.3.4(API 級別10),以支援更廣泛的裝置。 裝置製造商可以選擇是否在裝置的系統映象上包含附加庫。
注意:無論平臺級別如何,USB 主機和配件模式的支援最終取決於裝置硬體。 您可以通過 <uses-feature> 元素過濾支援 USB主機和配件的裝置。 有關詳細資訊,請參閱 USB 配件和主機文件。

除錯注意事項

當使用 USB 配件或主機功能除錯應用時,很有可能將 USB 硬體連線到 Android 裝置。這將阻止通過 USB 與 Android 裝置進行 adb 連線。您仍然可以通過網路連線訪問 adb。 要通過網路連線啟用adb:

1. 通過 USB 將 Android 裝置連線到計算機。

2. 在 SDK platform-tools/ 目錄中,在命令提示符下輸入 adb tcpip 5555

3. 輸入 adb connect <device-ip-address>:5555 現在應該連線上了 Android 裝置,並可以發出通常的 adb 命令,如:adb logcat。

4. 要將裝置設定為偵聽 USB,輸入adb usb


原文連結:https://developer.android.com/guide/topics/connectivity/usb/index.html




相關文章