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

Android поддерживает различные периферийные USB-устройства и USB-аксессуары Android (аппаратное обеспечение, реализующее протокол аксессуаров Android) в двух режимах: USB-аксессуар и USB-хост. В режиме USB-аксессуара внешнее USB-оборудование выступает в качестве USB-хоста. Примеры аксессуаров:

  • контроллеры робототехники
  • станции проката
  • диагностическое и музыкальное оборудование;
  • киоски
  • устройства чтения карт

и многое другое. Это позволяет устройствам Android, не имеющим возможностей хоста, взаимодействовать с USB-оборудованием. USB-аксессуары должны быть разработаны для работы с устройствами 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. В каталоге SDK platform-tools/ введите в командной строке adb tcpip 5555.
  3. Нажмите adb connect <device-ip-address>:5555. Теперь вы подключены к устройству Android и можете выполнять обычные команды adb, например adb logcat.
  4. Чтобы настроить устройство на прослушивание через USB, введите adb usb.