Сайт разработчика Александр Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Подключаем USB-устройства

5-й курс/Закрытая зона

Метки: UsbAccessory, UsbDevice, UsbManager, UsbDeviceConnection, UsbInterface, UsbEndpoint, UsbRequest

Android (API 12) поддерживает подключение к планшетам и смартфонам периферийных устройств через USB, например, мышки или флешки. Учтите, что не все модели могут поддерживать поддерживать подобную функциональность. Как правило, у планшетов это больше распространено. Я подключал мышку к своему Nexus 7 и в этом случае на экране появляется курсор. Кабель для подключения мышки (или других устройств) к планшету называют OTG.

Неплохо бы разбираться в интерфейсе USB, чтобы уметь принимать сигналы от подключаемых устройств.

Я расскажу только необходимый минимум, который нам понадобится.

Android-устройство может иметь два режима: USB device mode или USB host mode.

Когда мы подключаем телефон или планшет к компьютеру, то используется режим USB device mode. В этом случае питание идёт от компьютера к нашему устройству и оно заряжается. Если устройству требуется больше тока, чем может предоставить компьютер, то ему нужно иметь свой источник питания, но я такого не встречал пока.

Если мы подключаем какое-нибудь устройство к телефону или планшету через USB-порт, то в этом случае используется режим USB host mode. В этом режиме уже телефон обеспечивает питание для подключаемого гаджета, типа флешки, мышки и каких-то приборов и игрушек. Такой режим ещё называют OTG, возможно вы видели в продаже такие OTG-кабели. Они и позволяют подключить мышку к планшету.

Большинство устройств на Android при наличии порта OTG поддерживают на уровне системы классы устройств:

  • Устройства ввода — клавиатуры, мыши, джойстики (HID)
  • Накопители (Mass Storage)

Устройства типа модемов, сетевых адаптеров и вебкамер имеют ограниченную поддержку и зависят от модели вашего устройства.

Можно также упомянуть USB accessory mode, который появился с версии Android 3.0. Этот режим, например, используется при соединении телефона и фотокамеры.

Существует специальный стандарт, которого должны придерживаться все Android-устройства, использующие USB-порт. Следование стандарту обеспечивает совместимость и правильную работу устройств.

Основным пакетом для работы с протоколом USB является android.hardware.usb, который появился в Android 3.1 (API 12).

UsbAccessory

Класс UsbAccessory необходим при режиме USB accessory mode и позволяет узнать различную информацию о подключённом устройстве: название производителя, модель, версия и т.д.

UsbDevice

Класс UsbDevice отвечает за устройства, подключённые в режиме USB host mode и содержит информацию о возможностях, протоколе, классе и идентификаторе и т.д. При работе используется сервис UsbService, доступный через UsbHostManager

UsbManager

UsbManager - один из основных классов для работы с USB. Позволяет обмениваться информацией между устройствами, например, получить список присоединённых устройств.

UsbDeviceConnection

Класс UsbDeviceConnection содержит методы для отправки и получения данных.

UsbInterface

Класс UsbInterface отвечает за интерфейсы подключенных устройств.

UsbEndpoint

Класс UsbEndpoint отвечает за endpoint.

UsbRequest

Класс UsbRequest нужен для чтения и записи данных от устройств в асинхронном режиме.

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

Реклама