Подключение внешних устройств по usb опционально
У каждого владельца планшетного компьютера хоть раз, но возникала в голове мысль, а как подключить флешку к планшету, если производитель заранее не предусмотрел механизмов для ее корректной работы. В принципе, проблема подключения любой внешней периферии к устройству под управлением Android – это вечная головная боль, с которой пользователи справляются по-разному. А какой способ подойдет вам, вы должны решить самостоятельно, оценив возможности своего планшетного ПК.
Общие сведения
Из-за того, что в основе операционной системы Android лежит ядро Linux, подключение внешних устройств иногда происходит достаточно проблематично. Это происходит в том случае, если производитель изначально не оснастил свой девайс специальным хост-контроллером. В основном такая практика распространена на бюджетных моделях, в брендовых же гаджетах стараются не акцентировать на этом внимание.
Перед тем как выбрать способ подключения, необходимо определиться:
- Поддерживает ли ваш планшет режим USB-OTG – это должно быть указано на коробке поставки или на официальном сайте производителя;
- Если нет, тогда необходимо будет купить отдельный hub-USB.
Способы подключения flash-card
К большому сожалению владельцев сенсорных девайсов как в первом, так и во втором случае придется немного раскошелиться, но после применения на практике несложных манипуляций, вы сможете подключать абсолютно любые устройства:
- Жесткие диски;
- Клавиатуры и мишки;
- Игровые джойстики.
Подключение через USB-OTG
Прежде всего нужно приобрести шнур USB-OTG, если он не идет в комплекте поставки, как он выглядит, вы можете посмотреть на нижеприведенном изображении. Обратите внимание, что он может иметь и другую конфигурацию, но обязательно должен состоять из:
- Стандартного разъема USB;
- Разъема для подключения сенсорных устройств.
Главное окно менеджера
Теперь остается только подключить флешку к шнуру, а USB-OTG уже к таблетке и подождать пока выполнятся системные настройки. После этого запустить проводник и через него зайти на подключенную флешку, обычно она имеет путь: sdcard -> usbStorage.
Обратите внимание, что такой способ работает только в том случае, если в планшетном компьютере установлен встроенный hub-контроллер, в противном случае: сколько ни подключайте – это будет бесполезно.
Вы можете использовать и другие приложения для работы с файлами, только учтите то, что некоторые из них для корректной работы требуют получение root-прав, а это совсем не входило в первоначальный план по подключению обычной flash-карты.
Использование внешнего Hub
Вы наверно задаетесь вопросом: почему нельзя подключить внешние устройства аналогично вышеприведенной инструкции, если планшет не поддерживает этот режим. Все очень просто: разъем через который собственно выполняется зарядка планшетного гаджета, подключение к компьютеру работает только в одну сторону, то есть он принимает энергию, но не может отдать ее назад, из-за конструкторских особенностей. А как вы знаете, любое устройство работает от электричества, даже самая маленькая флешка требует энергии, поэтому в таком случае потребуется внешний источник питания и им может стать внешний Hub.
Инструкция очень простая:
- Шнур, который идет от hub подключаем к электросети, можно использовать разборную вилку зарядного устройства планшета;
- На корпусе имеется, в данном конкретном случае 4 USB-порта, к одному из них подсоединяем планшет: используя шнур для зарядки, а ко второму флешку.
В итоге мы создаем замкнутую цепь, которая питает флешку и позволяет планшетному девайсу ее определить, аналогичным способом подключаются и другие устройства.
Внешний hub может иметь разнообразную конструкцию, стоимость таких устройств колеблется от 200 рублей и выше, поэтому выбрать есть из чего.
Главное, чтобы при подключении flash-карты и другой периферии он имел внешний источник питания – без этого данный способ работать не будет.
Полноразмерный USB
Некоторые производители, чтобы выделить свою модель среди других аналогичных: оснащают свой планшет полноразмерным портом USB, как показано на изображении ниже.
В этом случае рассмотренные выше рекомендации к данной модели неприменимы, так как производитель уже на этапе сборки и программирования заложил механизмы для работы с периферий, что, несомненно, является большим плюсом.
Инструкция подключения флешки к Android устройствам
Наверняка не все знают, что к Android устройствам можно подключать обычную «компьютерную» периферию. Об этом нам рассказал Валентин Колягин, программист занимающийся разработкой Android систем. Это довольно удобно и в некоторых случаях позволяет обойтись без стационарного ПК. К примеру, можно подключить флэшку, клавиатуру или мышь. Подключение флэшки к устройству без слота для карт памяти даст нам дополнительный объем свободного места под файлы. Такой «трюк» можно использовать для просмотра фильмов на устройстве или просто для копирования документов на работе. Если у вас телефон с большим экраном или планшет, то гораздо удобнее будет вести переписку, набирать документы или просто «серфить» в сети интернет с помощью полноразмерной клавиатуры и мышки.
Перечисленную выше периферию можно подключить практически к любому Android устройству, который поддерживает USB Host через специальный переходник — он называется USB OTG. Однако, чтобы подключить другую периферию (джойстик, Wi-Fi адаптер, 3G модем, HDD диск) нужно производить уже некоторые манипуляции – иногда программные, а иногда и «железные».
Активный USB OTG
Активный OTG это кабель с дополнительным питанием. Некоторые модели телефонов, например, телефоны Motorola, которые поддерживают Lapdock, требуют для подключения любой периферии именно активный OTG. Другие же нуждаются в нем только для подключения особо «прожорливых» устройств, таких как например жесткий диск.
USB OTG с дополнительным питанием в продаже довольно трудно найти. Гораздо проще либо самостоятельно переделать обычный переходник, либо купить активный USB хаб.
Если же вы решите подключить джойстик к Android устройству старой версии (4.0 или 4.1), то вам придется устанавливать драйвера для него. А для этого вам нужно будет найти исходники ядра, и перекомпилировать его, предварительно поставив галочки в конфигах напротив поддержки игровых манипуляторов. Хотя для специалиста по созданию мобильного ПО это рядовая задача, сделать неподготовленному человеку это довольно сложно. Данная процедура должна выполняться в Linux среде, вы должны установить целый пакет необходимых библиотек, а также уметь исправлять ошибки компилятора по мере их появления. Поэтому самым верным шагом будет найти уже собранное кем-то ядро с уже включенной поддержкой геймпадов.
С Wi-Fi адаптерами дела обстоят почти также, но помимо перекомпиляции ядра, для некоторых моделей адаптеров вам нужно будет дополнительно найти прошивку. А когда вы пересоберете ядро и найдете все необходимые файлы, то управлять внешним Wi-Fi адаптером через привычный интерфейс у вас никак не получится – придется обходиться эмулятором терминала. Лично я потратил около двух дней чтобы заставить работать внешний адаптер на своем Motorola Atrix.
Хоть Android и считается довольно удобной операционной системой, но несколько более неординарные задачи выполняются на этой ОС довольно сложно. Особенно это касается поддержки оборудования, заранее не предусмотренного разработчиком. Если вы решите подключить к своему телефону тот же внешний Wi-Fi адаптер, то готовьтесь к тому, что вам придется изрядно повозиться и перечитать довольно много «мануалов».
Господа, поясните, плиз, что это значит.
Дело в том, что мне от планшета, кроме просмотра фильмов, выхода в сеть и т.д., необходима еще возможность куда-то сбрасывать фотографии.
Сейчас сбрасываю на нетбук, но уж больно тяжело его возить по свету.
Т.е планшет через переходник читает внешние флешки и SD карты. Опыт - это такая вещь, которая появляется сразу после того, как была нужна
ElAv » 26 ноя 2013, 17:41
Nogami » 26 ноя 2013, 17:42
ElAv писал(а) 26 ноя 2013, 17:33:Т.е планшет через переходник читает внешние флешки и SD карты.
да,я вот себя себе смотрю camera kit ,но у меня ipad .А такие переходники есть для всех типов устройств,я так думаю .
Balu-68 » 26 ноя 2013, 18:01
Nogami писал(а) 26 ноя 2013, 17:42: да,я вот себя себе смотрю camera kit ,но у меня ipad .А такие переходники есть для всех типов устройств,я так думаю . Опыт - это такая вещь, которая появляется сразу после того, как была нужнаNetsvet » 26 ноя 2013, 18:10
ElAv писал(а) 26 ноя 2013, 17:41: Спасибо, плюсую.Эту возможность легко настроить?
Какой планшет? Точное название.
ElAv » 26 ноя 2013, 18:35
Вот полная цитата
Balu-68 писал(а) 03 окт 2013, 13:00: По совету друзей (RomualdOso) Привез себе с поездки Asus nexus 7 2013г. Привязал к нему доступ к флэш памяти и получился почти идеальный на сегодня планшет для путешественника (конечно ИМХО)Netsvet » 26 ноя 2013, 18:53
Нужно прикупить специальный кабель - OTG кабель , показать продавцу планшет для выбора правильного кабеля. Стоимость кабеля примерно 150 - 200 рублей.
При подключении флешки появляется дополнительное устройство, с которого можно считывать, и записывать на него. Например, фотографии.
Balu-68 » 26 ноя 2013, 18:56
Отдал специалисту, он все поставил. Т.Е надо поставить root права на андроид. Опыт - это такая вещь, которая появляется сразу после того, как была нужна
ElAv » 26 ноя 2013, 19:00
Всем спасибо, но просьба пояснить пошагово последовательность действий для тех, кто в танке.
Задача: за время путешествия надо куда-то сбросить 100 Gb фотографий.
Предполагаю, что сначала на планшет с фотоаппарата с помощью USB кабеля, а затем с планшета на флешку с помощью OTG кабеля.
Правильно?
Посоветуйте также 10' планшеты, с которыми можно эти манипуляции производить.
Или со всеми можно?
Netsvet » 26 ноя 2013, 19:58
100 GB - не много ли?
Процедура перезаписи - правильная.
Рут права для этого планшета не нужны. По спецификации-
Подключение к компьютеру по USB есть
Подключение внешних устройств по USB опционально
Опционально - т.е. нужен кабель.
Планшеты 10". Нужно в спецификации искать - Подключение внешних устройств по USB или Поддержка USB Host (OTG)
У разных производителей различаются разъемы. Например, у Самсунга разъем свой специфический, нужно специально искать.
Интересен Планшет ASUS Transformer Pad тем, что у него есть клавиатура с аккумулятором, т.е. время автономной работы будет больше.
ElAv » 26 ноя 2013, 20:12
В самый раз. Правда, мой максимум - 86 Гб (raw).
Спасибо за консультацию, плюсануть второй раз нельзя.
В недавней статье на Geektimes в комментариях возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети. Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.
Большинство устройств на Android при наличии порта OTG поддерживают на уровне системы (ядра Linux или стандартных компонентов Android) следующие классы устройств:
- Устройства ввода — клавиатуры, мыши, джойстики (HID)
- Накопители (Mass Storage)
- Сотовые модемы
- Сетевые адаптеры
- Вебкамеры
Подробнее список устройств, поддерживаемых на уровне ядра 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, но у меня это не стало работать.
Принтеры
Класс предельно простой. В рамках этого класса устройство должно поддерживать:
- Обязательный bulk out endpoind для отправки данных на принтер
- Опциональный bulk in endpoind для получения статуса принтера
- 3 управляющих запроса
Код, приведенный ниже, предоставляет функциональность, аналогичную устройству /dev/usb/lp в Linux. Далее нам нужен фильтр, преобразующий исходный документ в пакет данных, понятный конкретной модели принтера. Но это тема иной статьи. Как один из вариантов — можно собрать ghostscript с помощью NDK.
Для работы с устройством нам в первую очередь нужно:
1. Найти устройство. В примере для простоты я ищу первый попавшийся:
2. Получить endpoint’ы:
3. Непосредсвенно открыть устройство:
4. После этого мы можем читать и писать в устройство:
5. По завершении работы — закрыть устройство:
Преобразователи USB-Serial
1. Найти и открыть устройство:
2. Установить параметры последовательного порта:
3. Читать и писать в порт:
4. По завершении работы — закрыть порт:
Резюме
Надеюсь, что мне удалось показать, что работа с USB периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.
Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.
Читайте также: