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 поддерживают на уровне системы классы устройств:
Устройства типа модемов, сетевых адаптеров и вебкамер имеют ограниченную поддержку и зависят от модели вашего устройства.
Можно также упомянуть USB accessory mode, который появился с версии Android 3.0. Этот режим, например, используется при соединении телефона и фотокамеры.
Существует специальный стандарт, которого должны придерживаться все Android-устройства, использующие USB-порт. Следование стандарту обеспечивает совместимость и правильную работу устройств.
Основным пакетом для работы с протоколом USB является android.hardware.usb, который появился в Android 3.1 (API 12).
Класс UsbAccessory необходим при режиме USB accessory mode и позволяет узнать различную информацию о подключённом устройстве: название производителя, модель, версия и т.д.
Класс UsbDevice отвечает за устройства, подключённые в режиме USB host mode и содержит информацию о возможностях, протоколе, классе и идентификаторе и т.д. При работе используется сервис UsbService, доступный через UsbHostManager
UsbManager - один из основных классов для работы с USB. Позволяет обмениваться информацией между устройствами, например, получить список присоединённых устройств.
Класс UsbDeviceConnection содержит методы для отправки и получения данных.
Класс UsbInterface отвечает за интерфейсы подключенных устройств.
Класс UsbEndpoint отвечает за endpoint.
Класс UsbRequest нужен для чтения и записи данных от устройств в асинхронном режиме.
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью