- Конфигурация USB на Android — что это и как настроить?
- Работа с устройствами USB в Android
- Права доступа
- Принтеры
- Преобразователи USB-Serial
- Резюме
- Как настроить подключение USB по умолчанию на Android?
- Выбрать подключение USB по умолчанию на Android
- Как задать конфигурацию USB по умолчанию в Android 10
- Как выбрать подключение USB по умолчанию на Андроид
- Выбрать подключение USB по умолчанию на Android 6.0 и новее
Конфигурация USB на Android — что это и как настроить?
Зачем нужен и как настроить раздел конфигурация USB на смартфоне?
В операционной системе Android есть много полезных опций и настроек, которые часто скрыты от рядовых пользователей. Одна из них — конфигурация USB. Функция расположена в изначально закрытом разделе смартфона — «Для разработчиков«. Также меню выбора конфигурация USB открывается сразу после того, как мы подсоединяем смартфон к компьютеру, используя стандартный кабель USB.
Конфигурация USB — раздел, где расположены дополнительные режимы подключения смартфона по USB. Когда мы подключаем гаджет к компьютеру через USB-кабель, можно выбрать одну из следующих конфигураций:
- Зарядка. Аккумулятор смартфона начнет заряжаться от компьютера. Больше ничего не произвойдет.
- MTP (Media Transfer Protocol). Режим, который используется для передачи файлов (изображений, текстовых документов, музыки) со смартфона на компьютер и наоборот.
- PTP (Picture Transfer Protocol). Это специальный протокол, который используется для передачи изображений. В этом режиме можно переносить изображения со смартфона на компьютер или принтер для печати.
- RNDIS (USB Ethernet). Это спецификация интерфейса удаленного сетевого драйвера. С помощью этого режима можно создать виртуальный канал Ethernet. Для этого используется сеть.
- Источник аудио. Режим, который использует интерфейс USB для вывода звука с компьютера.
- MIDI. Этот режим дает возможность использовать смартфон в качестве MIDI-устройства: например, MIDI-клавиатуры для создания музыкальных композиций в специализированных программах.
В разделе «Конфигурация USB» можно выбрать, какой из режимов будет использоваться по умолчанию при подключении к ПК, ноутбукам и другим устройствам. Выбор здесь за каждым пользователем — кому-то нужна только зарядка, а кто-то планирует переносить данные с телефона на ПК (или обратно). Изменить настройку можно в любой момент.
Источник
Работа с устройствами 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 периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.
Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.
Источник
Как настроить подключение USB по умолчанию на Android?
Если вы являетесь одним из счастливчиком, что получили новый смартфон или планшет с новой версией прошивки Android, то наверняка вы заметили один большой недостаток в этой ОС. При каждом новом подключение к компьютеру устройство использует USB по умолчанию как зарядку, но не передачу файлов или PTP! Это легко исправить!
Несмотря на то, что в Android было внесено множество инноваций, оптимизаций и исправлений, все же не обошлось и без глупых решений. Одним из таких решений у разработчиков Google можно считать подключение по USB! Только вам стоит отключить Android смартфон или планшет от компьютера и снова подключить, как вам снова предстоит настраивать способ подключения по USB для передачи данных.
Если вы подключаете Android к компьютеру очень редко, то возможно эта проблема несущественна, но если вы подключаете смартфон или планшет к ПК каждый день, то это начинает раздражать. Вот вам пример на видео:
Стоит сказать спасибо разработчикам Android, что они все же оставили возможность переключить подключение по USB по умолчанию с зарядки, на передачу данных! Рассказываем как настроить USB подключение на Android!
Выбрать подключение USB
по умолчанию на Android
И так, для того чтобы выбрать USB подключение по умолчанию, вам необходимо выполнить следующие действия:
- Отключите Android устройство от компьютера
- Перейдите в меню Настроек Android
- Найдите и перейдите в раздел «О смартфоне» или «О планшете«
- Очень быстро нажать 5-7 раз на пункт «Номер сборки», чтобы активировать раздел «Для разработчиков»
- Вернитесь в основное меню настроек и перейдите в раздел «Для разработчиков»
- Выбрать «Конфигурация USB»
- Выбрать MTP подключение для передачи файлов
- Если на вашем ПК не установлены Android драйвера, то установить
Вот и все! Теперь при новом подключение смартфона или планшета, на котором установлен Android 6.0, к компьютеру, будет по умолчанию задействован тот тип конфигурации подключения, который вы выбрали в меню разработчика!
Оставайтесь с сайтом Android +1! Дальше будет еще интересней!
Источник
Как задать конфигурацию USB по умолчанию в Android 10
Ваш ПК или ноутбук не видит телефон после обновления его до Android 10 при подключении через USB? Не стоит расстраиваться. Это нормально: вам просто нужно задать конфигурацию USB по умолчанию в меню настроек системы.
При этом у вас появится возможность выбрать один из пяти вариантов подключения:
- Передача файлов: Передача файлов на ПК / Android или с него или запуск Android Auto.
- USB-модем: ведет себя как внешний модем для ПК.
- MIDI: используется при подключении телефона к MIDI-устройству (например, цифровой клавиатуре).
- PTP: после подключения ваше устройство будет отображаться на ПК в виде цифровой камеры.
- Без передачи данных: никаких действий не предпринимается.
Одна вещь, которую вы больше не получите после установки Android 10 – это режим USB накопителя (Mass Storage), которое раньше была на Android устройствах. USB Mass Storage — это стандартный протокол для всех типов запоминающих устройств, в котором ваш телефон становится полностью доступным для ПК, как если бы он был внешним диском. Проблема этого метода заключается в том, что ПК требует эксклюзивного доступа к хранилищу Android.
По соображениям безопасности эта опция была убрана в пользу передачи файлов.
Как задать конфигурацию USB по умолчанию в Android 10
Для этого вам нужно будет прежде всего попасть в скрытое меню настроек системы «Для разработчиков»
Чтобы включить меню для разработчиков мам нужно зайти в меню настроек системы, в раздел «О телефоне» («О планшете»), где в самом его конце вы увидите пункт «Номер сборки». Нажимайте на него до тех пр, пока не получите сообщение о том, что опции разработчика включены.
После этого вернитесь в главное меню настроек системы и откройте «Система» -> «Дополнительно» -> «Для разработчиков». Здесь вы найдете пункт «Конфигурация USB по умолчанию», нажав на который вы сможете выбрать один из пяти упомянутых выше режимов. Более простым способом найти эту опцию в меню настроек системы будет набрать USB в строке поиска настроек.
Теперь, когда вы подключите ваше Android устройство через USB-соединение, оно будет вести себя так как вы хотели бы.
Источник
Как выбрать подключение USB по умолчанию на Андроид
вкл. 27 Сентябрь 2019 . Опубликовано в Android — Общее
Как выбрать подключение USB по умолчанию на Андроид. Если вы являетесь одним из счастливчиком, что получили на свой смартфон или планшет обновленную прошивку в виде Android 6.0, то наверняка вы заметили один большой недостаток в этой ОС. При каждом новом подключение к компьютеру устройство использует USB по умолчанию как зарядку, но не передачу файлов или PTP! Это легко исправить!
Несмотря на то, что в Android 6.0 было внесено множество инноваций, оптимизаций и исправлений, все же не обошлось и без глупых решений. Одним из таких решений у разработчиков Google можно считать подключение по USB, ведь только вам стоит отключить Android смартфон или планшет от компьютера и снова подключить, как вам снова предстоит настраивать способ подключения по USB для передачи данных.
Если вы подключаете Android к компьютеру очень редко, то возможно эта проблема несущественна, но если вы подключаете смартфон или планшет к ПК каждый день, то это начинает раздражать.
Стоит сказать спасибо разработчикам Android, что они все же оставили возможность переключить подключение по USB по умолчанию с зарядки, на передачу данных!
Выбрать подключение USB по умолчанию на Android 6.0 и новее
И так, для того чтобы выбрать USB подключение по умолчанию, вам необходимо выполнить следующие действия:
- Отключите Android устройство от компьютера
- Перейдите в меню Настроек Android
- Найдите и перейдите в раздел «О смартфоне» или «О планшете«
- Очень быстро нажать 5-7 раз на пункт «Номер сборки», чтобы активировать раздел «Для разработчиков»
- Вернитесь в основное меню настроек и перейдите в раздел «Для разработчиков»
- Выбрать «Конфигурация USB»
- Выбрать MTP подключение для передачи файлов
- Если на вашем ПК не установлены Android драйвера , то установить
Вот и все! Теперь при новом подключение смартфона или планшета, на котором установлен Android 6.0, к компьютеру, будет по умолчанию задействован тот тип конфигурации подключения, который вы выбрали в меню разработчика!
Источник