Android obsługuje różne urządzenia peryferyjne USB i akcesoria USB na Androida (sprzęt, który implementuje protokół akcesoriów Android) w 2 trybach: akcesorium USB i host USB. W trybie akcesorium USB zewnętrzny sprzęt USB działa jako host USB. Przykładowe akcesoria:
- kontrolery robotyki
- stacje dokowania
- sprzęt diagnostyczny i muzyczny
- kioski
- czytniki kart
i wiele innych. Dzięki temu urządzenia z Androidem, które nie mają funkcji hosta, mogą korzystać ze sprzętu USB. Akcesoria USBB z Androidem muszą być zaprojektowane do współpracy z urządzeniami z Androidem i muszą być zgodne z protokołem komunikacji akcesoriów z Androidem. W trybie hosta USB pełni ono funkcję hosta z Androidem. Przykładami urządzeń są aparaty cyfrowe, klawiatury, myszy i kontrolery gier. Urządzenia USB zaprojektowane do stosowania w wielu różnych aplikacjach i środowiskach mogą nadal współpracować z aplikacjami na Androida, które mogą się z nimi prawidłowo komunikować.
Rysunek 1 przedstawia różnice między tymi dwoma trybami. Gdy urządzenie z Androidem jest w trybie hosta, działa jako host USB i zasila magistrali. Gdy urządzenie z Androidem jest w trybie akcesorium USB, podłączony sprzęt USB (w tym przypadku akcesorium USB z Androidem) pełni funkcję hosta i zasila magistrali.
Rysunek 1. Tryby hosta USB i akcesoriów
Tryby akcesorium USB i hosta są obsługiwane bezpośrednio na platformach Android 3.1 (poziom API 12) i nowszych. Tryb akcesorium USB jest też wstecznie przenoszony do Androida 2.3.4 (poziom interfejsu API 10) jako biblioteki dodatków, aby obsługiwać szerszą gamę urządzeń. Producenci urządzeń mogą zdecydować, czy uwzględnić bibliotekę dodatków w obrazie systemu urządzenia.
Uwaga: obsługa trybów hosta USB i akcesoriów zależy od sprzętu urządzenia, niezależnie od poziomu platformy. Za pomocą elementu <uses-feature>
możesz filtrować urządzenia, które obsługują host USB i akcesoria.
Więcej informacji znajdziesz w dokumentacji akcesorium i hosta USB.
Uwagi na temat debugowania
Podczas debugowania aplikacji, które korzystają z akcesoriów USB lub funkcji hosta, do urządzenia z Androidem jest najprawdopodobniej podłączone sprzęt USB. To uniemożliwia połączenie adb
z urządzeniem z Androidem przez USB. Nadal możesz korzystać z aplikacji adb
przez połączenie sieciowe. Aby włączyć funkcję adb
przez połączenie sieciowe:
- Podłącz urządzenie z Androidem przez USB do komputera.
- W katalogu pakietu SDK
platform-tools/
wpiszadb tcpip 5555
w wierszu polecenia. - Wpisz
adb connect <device-ip-address>:5555
Powinno nastąpić połączenie z urządzeniem z Androidem i możesz teraz wydawać standardowe poleceniaadb
, takie jakadb logcat
. - Aby skonfigurować urządzenie do słuchania na USB, wpisz
adb usb
.