Обзор USB-хоста и аксессуаров

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 через сетевое соединение:

  1. Подключите устройство под управлением Android через USB к компьютеру.
  2. В каталоге platform-tools/ введите adb tcpip 5555 в командной строке.
  3. Введите adb connect <device-ip-address>:5555 Теперь вы должны быть подключены к устройству под управлением Android и можете выполнять обычные команды adb такие как adb logcat .
  4. Чтобы настроить ваше устройство на прослушивание USB, введите adb usb .