- Способы включения OTG на Android
- Использование OTG на Android
- Проверка поддержки
- Работа с устройствами
- Устранение проблем
- Заключение
- OTG – что это за функция и какими устройствами она поддерживается
- Что можно подключить через OTG
- Поддерживает ли мой телефон OTG
- Работа с устройствами USB в Android
- Права доступа
- Принтеры
- Преобразователи USB-Serial
- Резюме
Способы включения OTG на Android
Современные устройства на платформе Android постоянно развиваются, и в настоящее время за счет технологии OTG к смартфону можно без проблем подключить внешние USB-девайсы, будь то модем, флешка и многое другое. При этом даже в случае неправильной работы соединения существует несколько решений. В рамках этой статьи мы расскажем о методах проверки поддержки OTG и про способы подсоединения внешних устройств.
Использование OTG на Android
Для того чтобы соединить со смартфоном какое-либо устройство через OTG, он в той или иной степени должен поддерживать данный тип подключения. Это важно учитывать в первую очередь, так как без ответной реакции Android-устройства дальнейшие действия будут невозможны.
Проверка поддержки
Выполнить проверку смартфона на предмет совместимости с OTG можно с помощью специального софта, временно подключив кабель к порту microUSB и проследив за реакцией. Основным ПО для этих целей выступает один-единственный вариант, способный диагностировать любой смартфон вне зависимости от версии ОС.
- Перейдите по представленной выше ссылке и установите приложение. В отличие от многих других аналогов, здесь не требуется получение рут-прав.
Чтобы USB OTG Checker отреагировало на подсоединение, соедините телефон с любым внешним устройством. В случае успеха появится соответствующее уведомление.
По необходимости в Плей Маркете можно найти немало альтернативных решений, имеющих практически такое же название. Об этом важно помнить, так как далеко не во всех ситуациях представленное приложение способно проверить совместимость с OTG.
Работа с устройствами
Наиболее простой этап заключается в подключении и последующем использовании внешних устройств через OTG, но при этом является уникальным практически для каждого гаджета. Это связано с необходимостью установки одного из специальных приложений, напрямую связанных с устройством. Например, приложение для внешней клавиатуры не подойдет для настройки принтера.
Шаг 1: Подключение
- Эта процедура, как сказано, может быть уникальной для каждого устройства. В целом необходимо выполнить всего лишь два действия, первым из которых выступает соединение внешнего девайса с USB-разъемом переходника «USB – microUSB».
Дальше нужно подсоединить microUSB-разъем к соответствующему порту на корпусе устройства.
В некоторых случаях, если вы используете OTG со вспомогательным питанием, нужно соединить дополнительный USB-выход с адаптером. На этом же процедура завершается.
Шаг 2: Выбор приложения
Как было сказано ранее, в зависимости от подключаемого девайса необходимо скачать и установить соответствующее приложение из Плей Маркета. Подобные программы также предоставляют вариативность, из-за чего выбору стоит уделить наибольшее внимание. Рассматривать каждый вариант мы не будем, вместо этого предоставив список наиболее рекомендованных к использованию вариантов.
- USB OTG Helper – утилита, являющаяся основным средством работы с файлами на внешних накопителях и актуальна даже тогда, когда на флешке используется файловая система NTFS.
StickMount – представляет собой одно из альтернативных решений USB OTG Helper, нацеленное точно так же на чтение файлов с флешки. Может оказаться особенно полезным при соединении мобильного аппарата с внешним жестким диском.
OTG View – приложение, нацеленное на распознавание и перехват изображения с внешних камер. Обычно оно используется при подключении эндоскопа.
PPP Widget 2 – одно из уникальных приложений, позволяющих подсоединить через OTG внешний 3G или 4G-модем. К преимуществам можно отнести удобное управление через виджет на главном экране и возможность значительного усиления сигнала сотой связи.
Указанные варианты являются лишь основными, в то время как для подключения, например, геймпада потребуется совершенно другое ПО, напрямую зависящее от модели и производителя устройства. Если будут проблемы с поиском приложений, можете обращаться к нам в комментариях.
Устранение проблем
Если на этапе проверки у вас получилось добиться той или иной реакции от устройства, соединенного посредством OTG, но полноценный сигнал отсутствует, вполне могут быть проблемы с питанием. Именно данная особенность зачастую заставляет пользователей думать об отсутствии поддержки данного типа соединения, когда на самом деле достаточно добавить внешнее питание.
Проще всего компенсировать нехватку энергии USB-хабом, оборудованным собственным адаптером питания. Его необходимо подключить к сети, соединить со смартфоном и только после этого добавить нужное устройство.
Еще одной связанной причиной некорректной работы может быть использование слишком требовательного гаджета, что в особенности относится к внешним накопителям. Попробуйте использовать дополнительное питание или менее требовательную карту памяти.
Иногда для распознавания девайсов, подключенных через OTG, недостаточно специальных приложений из-за отсутствия поддержки на программном уровне. Единственное, что можно сделать в таком случае, это обновить операционную систему или перепрошить аппарат.
Представленной инструкции должно быть достаточно для успешного подсоединения внешних устройств при помощи технологии OTG практически на любом смартфоне, выпущенном в среднем после 2012 года. Описанные действия будут не актуальны только при использовании кабеля с дополнительным питанием, упомянутого на этапе подключения.
Заключение
Когда телефон вовсе не поддерживает OTG, единственным выходом может стать только собственноручная модификация смартфона или внешнего устройства. Мы не будем описывать настоящую процедуру из-за возможного нанесения вреда мобильному девайсу. К тому же для этого потребуются соответствующие инструменты и навыки, как правило, отсутствующие у рядового пользователя.
Помимо этой статьи, на сайте еще 12470 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
OTG – что это за функция и какими устройствами она поддерживается
OTG – функция телефона, которая позволяет подключать к нему дополнительные периферийные устройства. Название расшифровывается как on-the-go или, по-русски, “на ходу”, что означает возможность подключения периферии без дополнительных манипуляций, вы просто вставляете разъём и начинаете пользоваться. По сути, OTG – это практически полноценный USB вход на вашем смартфоне.
Так как все смартфоны Андроид имеют разъёмы micro-USB или type-c, а подключаемые устройства, в основном, USB type a, то для их соединения используют специальные OTG переходники или адаптеры, кто как называет.
Что можно подключить через OTG
Используя OTG адаптер вы сможете подключить любое устройство с USB выходом, а вот будет ли оно работать, зависит от конкретного смартфона.
Список поддерживаемых устройств:
- Флешка
- Жесткий диск
- Мышь
- Клавиатура
- Джойстик
- Принтер и проч.
Список можно дополнить по своему усмотрению, но работоспособность вы сможете проверить только опытным путём.
Так как для подключения по отг чаще всего используются флешки, то многие производители стали выпускать их с универсальными разъёмами, для возможности подключения без использования переходника. Большой выбор таких флешек вы сможете найти на ru.aliexpress.com
Там же можно найти и всевозможные OTG адаптеры
Поддерживает ли мой телефон OTG
Есть несколько способов проверить, есть ли в телефоне данная функция:
- Подключите к смартфону через переходник компьютерную мышку, если функция OTG поддерживается, на экране телефона вы увидите указатель стрелочку
- Установите на телефон приложение USB OTG Checker
Источник
Работа с устройствами USB в Android
В недавней статье на Geektimes в комментариях возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети. Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.
Большинство устройств на Android при наличии порта OTG поддерживают на уровне системы (ядра Linux или стандартных компонентов Android) следующие классы устройств:
- Устройства ввода — клавиатуры, мыши, джойстики (HID)
- Накопители (Mass Storage)
Несколько реже:
- Сотовые модемы
- Сетевые адаптеры
- Вебкамеры
Хабы поддерживаются при наличии полноценных хост-портов, но не поддерживаются на портах OTG.
Подробнее список устройств, поддерживаемых на уровне ядра Linux, можно получить в sysfs:
$ ls /sys/bus/usb/drivers
Если же модуль в принципе доступен в исходниках ядра Linux, но не включен в Android — не стоит рассчитывать на то, что его получится собрать и расставить на все целевые системы.
Однако, начиная с Android 3.1 (API 12), в системе содержатся средства, достаточные для поддержки на уровне приложения любой USB периферии. Данные средства описаны в разделе USB Host руководства по Android API. Здесь же я хочу привести примеры реальной работы с некоторыми видами устройств.
Права доступа
Как и для прочих действий, Android требует, чтобы приложение получило разрешение на доступ к USB периферии. Существует 2 способа получить такое разрешение:
- Задекларировать список устройств в AndroidManifest
- Явно показать пользователю диалог “разрешить”
Поскольку для моих задач лишние вопросы к пользователю были нежелательны, я использовал первый способ.
Итак, нам необходимо добавить в манифест следующее:
А в res/xml/device_filter.xml вписать следующее:
Отмечу, что хотя общепринято указывать VID:PID в 16-ричной системе счисления, здесь они должны быть указаны в десятичной. В документации заявляется, что возможно указание только класса, без VID и PID, но у меня это не стало работать.
Принтеры
На примере принтера я покажу, как непосредственно использовать API android.hardware.usb. На уровне передачи данных все принтеры поддерживают стандартый класс USB устройств:
Класс предельно простой. В рамках этого класса устройство должно поддерживать:
- Обязательный bulk out endpoind для отправки данных на принтер
- Опциональный bulk in endpoind для получения статуса принтера
- 3 управляющих запроса
Код, приведенный ниже, предоставляет функциональность, аналогичную устройству /dev/usb/lp в Linux. Далее нам нужен фильтр, преобразующий исходный документ в пакет данных, понятный конкретной модели принтера. Но это тема иной статьи. Как один из вариантов — можно собрать ghostscript с помощью NDK.
Для работы с устройством нам в первую очередь нужно:
1. Найти устройство. В примере для простоты я ищу первый попавшийся:
2. Получить endpoint’ы:
3. Непосредсвенно открыть устройство:
4. После этого мы можем читать и писать в устройство:
5. По завершении работы — закрыть устройство:
Преобразователи USB-Serial
В отличие от притеров, преобразователи USB-Serial гораздо менее стандартизированы. Существует несколько распространенных чипов, для которых существенно отличается установка параметров последовательного порта — битрейта, чётности и проч. К счастью, есть библиотека github.com/mik3y/usb-serial-for-android, поддерживающая практически все существующие чипы. Библиотека полностью скрывает USB API, сводя все необходимые действия к минимуму вызовов с минимумом параметров.
1. Найти и открыть устройство:
2. Установить параметры последовательного порта:
3. Читать и писать в порт:
4. По завершении работы — закрыть порт:
Резюме
Надеюсь, что мне удалось показать, что работа с USB периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.
Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.
Источник