Android поддерживает различные периферийные устройства USB и USB-аксессуары Android (оборудование, реализующее протокол аксессуаров Android) в двух режимах: USB-аксессуар и USB-хост. В режиме USB-аксессуара внешнее USB-оборудование действует как USB-хост. Примерами аксессуаров могут быть:
- контроллеры робототехники
- док-станции
- диагностическое и музыкальное оборудование
- киоски
- картридеры
и многое другое. Это дает устройствам на базе Android, которые не имеют возможностей хоста, возможность взаимодействовать с оборудованием USB. USB-аксессуары Android должны быть предназначены для работы с устройствами под управлением Android и соответствовать протоколу связи аксессуаров Android . В режиме USB-хоста в качестве хоста выступает устройство Android. Примеры устройств включают цифровые камеры, клавиатуры, мыши и игровые контроллеры. USB-устройства, предназначенные для широкого спектра приложений и сред, по-прежнему могут взаимодействовать с приложениями Android, которые могут правильно взаимодействовать с устройством.
На рисунке 1 показаны различия между двумя режимами. Когда устройство под управлением Android находится в режиме хоста, оно действует как хост USB и питает шину. Когда устройство под управлением Android находится в режиме USB-аксессуара, подключенное USB-оборудование (в данном случае USB-аксессуар Android) действует как хост и питает шину.
Рисунок 1. Режимы USB-хоста и аксессуара
USB-аксессуар и режимы хоста напрямую поддерживаются на платформах Android 3.1 (уровень API 12) и более поздних версиях. Режим аксессуаров USB также поддерживается в Android 2.3.4 (уровень API 10) в качестве дополнительной библиотеки для поддержки более широкого спектра устройств. Производители устройств могут выбирать, включать или нет дополнительную библиотеку в образ системы устройства.
Примечание. Поддержка режимов USB-хоста и аксессуаров в конечном итоге зависит от аппаратного обеспечения устройства, независимо от уровня платформы. Вы можете фильтровать устройства, поддерживающие USB-хост и аксессуар, с помощью элемента <uses-feature>
. Более подробную информацию см. в документации к USB- аксессуару и хосту .
Рекомендации по отладке
При отладке приложений, использующих USB-аксессуар или функции хоста, скорее всего, к вашему устройству под управлением Android подключено USB-оборудование. Это предотвращает подключение adb
к устройству под управлением Android через USB. Вы по-прежнему можете получить доступ adb
через сетевое соединение. Чтобы включить adb
через сетевое соединение:
- Подключите устройство под управлением Android через USB к компьютеру.
- В каталоге
platform-tools/
введитеadb tcpip 5555
в командной строке. - Введите
adb connect <device-ip-address>:5555
Теперь вы должны быть подключены к устройству под управлением Android и можете выполнять обычные командыadb
такие какadb logcat
. - Чтобы настроить ваше устройство на прослушивание USB, введите
adb usb
.