2013年3月22日 星期五

[Android] Android Developer Note Connectivity 5

USB (見Android Developer USB)

USB Host and Accessory
Android透過兩種模式來支援各種USB周邊(peripherals)及配件(accessories):
USB accessory 和 USB host。
在USBaccessory模式裡,外部的USB硬體會像USB host一樣運作。
accessories的範例可能包自動化控制裝置、擴充底座(docking stations)、
診斷和音樂配備、kiosks(類似i-bon自動化介面的東西)、
讀卡機、以及其他更多。
這個模式裡可以給所有沒有host能力的Android裝置和USB硬體來交流。
Android USB accessories必須被設計成和Android裝置運作,
並且依附(adhere)的Android accessory communication protocol協定。

在USB host模式下,Android裝置表現的像host一樣。
範例的裝置像是數位相機、鍵盤、滑鼠、以及遊戲控制器。
USB裝置是被設計成讓在很大範圍的app和環境下,
仍舊可以和Android app正確地互動交流的。

圖一展示了兩種模式的差別,當Android裝置在host模式時,
它表現的就如USB host一般,且供應電力給匯流排(bus)。
當Android裝置在accessory模式時,被連接的USB硬體會表現像host一般,
並且供應電力。
圖一. USB Host 和 Accessory模式

USB accessory和host模式在Android 3.1(API level 12)或更新的平台上被直接支援。
USB accessory模式也被還原(backported)到Android 2.3.4(API level 10),
作為一個附加(add-on)library以支援更大範圍的裝置。
裝置的開發商可以選擇要不要把add-on library加入裝置的系統映像裡。

注意:
不論其平台level支援USB host以及accessory modes的部分,
最終其實是依賴於(dependant不是dent,意思稍微不同)裝置硬體的。
你可以經由<uses-feature>元素,
來篩過那些支援USB host裝置以及accessory。

Debugging considerations
當除錯使用USB accessory及host功能的apps時,
你大概會讓USB硬體連接到你的Android裝置上,
這會避免讓你透過USB來用adb的連線到Android裝置。
你還是可以透過網路連線來連接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。



沒有留言:

張貼留言