Для чего нужна отладка по USB
В большинстве случаев режим отладки или usb debugging нужен специалистам, которые занимаются разработкой и тестированием приложений. В нём ваш телефон или планшет переходят в специальный режим. Основная его функция – это поиск и устранение ошибок в ПО. Но, как уже говорилось выше, для обычных пользователей он может быть очень удобен.
Прежде всего, отладка по USB помогает прошить смартфон и восстановить его работу после системного сбоя, помогает найти случайно убитые файлы и данные. Его можно использовать для создания копий приложений, а также, если вам нужно установить приложение на устройство без Google Play.
Поможет этот режим и тем, кто собирается пользоваться устройством с Root-правами.
Однако, обращаем ваше внимание, что использовать режим лучше уверенным пользователям ПК и смартфонов. Если вы сомневаетесь в правильности действий, лучше обратитесь к специалисту.
Отличишь кринж от краша? Пройди увлекательный тест и узнай это!
Через режим восстановления (Recovery)
В некоторых случаях включить этот режим на мобильном устройстве не представляется возможным. Это может быть, к примеру, из-за повреждения тачскрина экрана или неработающего мобильника в целом. В подобной ситуации вам поможет метод, который предполагает использование режима восстановления. Стоит отметить, что для его осуществления на смартфоне обязательно должно быть установлено кастомное Recovery CWM или TWRP. Это позволит получить root права доступа к операционной системе мобильника. Рассмотрим перечень необходимых действий, которые нужно совершить для возможности отладки телефона через USB в этом случае:
- С официального сайта загрузить и распаковать в корневой каталог операционной системы компьютера Андроид менеджер приложение qtADB-cwm-edition.
- Там же создать папку с названием SQlite3_Windows и установить в нее заранее скачанную базу реляционных данных SQLite.
- Перезагрузить мобильник и войти в Recovery Mode посредством одновременного зажатия нескольких клавиш. Как зайти в режим восстановления конкретной модели можно прочесть на официальном сайте производителя.
- Подсоединить мобильник к компьютер с помощью USB кабеля.
- Запустить на компьютере исполнительный файл QtADB.exe, расположенный в папке скачанного ранее менеджера.
- Кликнуть пункт «дополнительно» и убедиться, что раздел мобильного устройства «Data» отображается правильно.
- Выбрать вкладку «файлы» в левой панели, после чего открыть ранее созданную папку с базой реляционных данных SQLite.
- Открыть директорию data/com.android.providers.settings/databases/ в правой панели программы.
- Переместить файл с названием settings.db с папки правой панели в левую.
- Запустить командную строку Windows (при помощи комбинации клавиш Win+R) и ввести: «cd C:\Sqlite3_Windows», «sqlite3 settings.db», «update secure set value=1 where name=’adb_enabled».
- Обратно копируем файл с названием settings.db, соглашаясь на перезапись и перезагружаем мобильное устройство.
Как включить режим разработчика
Для того чтобы включить отладку по USB на Андроид и перевести телефон в режим отладки или debugging mode, необходимо будет изменить некоторые параметры на вашем смартфоне. Точнее, перейти в режим разработчика. Для этого:
- На смартфоне заходим в раздел «Настройки».
- Выбираем пункт «О телефоне»/«О планшете».
- В открывшемся окне ищем строку «Номер сборки»/«Версия MIUI» и нажимаем на него пару раз (возможно, придётся нажать 8-10 раз, главное – нажимать без перерывов).
- Возможно, придётся ввести пароль. В результате, на экране должно появится сообщение: «Вы стали разработчиком».
- Далее вы увидите в меню «Настройки» новый раздел «Для разработчиков».
После этого приступаем непосредственно к подключению отладки по USB:
- Открываем «Настройки»-«Дополнительно»-«Для разработчиков».
- Здесь переключаете бегунок на «Вкл».
- Откроется окно с просьбой разрешить отладку. Нажимаем «Ок». Так вы сможете решить вопрос, как включить или отключить отладку по USB. После этого можете приступать к необходимым процессам на смартфоне в специальном режиме.
М или Ж? Пройди тест и узнай кто ты в быту: мужчина ты или женщина
Если хотите подключиться по WI-FI
После того как включили данную опцию на Android вы можете подключить смартфон к ПК и вводить необходимые команды adb или получать Root права !
У вас еще остались вопросы? Пишите их в комментариях, рассказывайте, что у вас получилось или наоборот!
Вот и все! Больше полезных статей и инструкций читайте в разделе . Оставайтесь вместе с сайтом , дальше будет еще интересней!
На любом смартфоне или планшетном компьютере, работающем на платформе Андроид, не зависимо от его производителя и предустановленной версии ОС, присутствует возможность включения специальной функции, которая имеет название «Режим отладки». Однако процесс активации этого функционала различается. Дело в том, что все зависит от версии установленной системы.
В этой статье мы подробно рассмотрим вопрос, как включить отладку по USB на Андроид, как на ранних версиях ОС, так и на последних. Также разберем вопрос, для решения каких задач предусмотрен данный режим.
Давайте сначала разберемся, для каких целей может понадобиться рядовому пользователю активация этого режима.
Как нетрудно догадаться, он необходим для проведения отладки приложений и самого устройств. Говоря более простым языком, предназначается для проверки работоспособности программ, и поэтому очень популярен, в первую очередь, среди разработчиков программного обеспечения. Однако для простых смертных он тоже представляет ценность, поскольку позволяет взаимодействовать с Android через ПК и использовать программы (в первую очередь ADB), которые могут удаленно проводить различные манипуляции с устройством.
Отладка по USB, как включить на Android 9, 10, 11
Теперь детально разберём процесс, как включить отладку по USB на разных версиях Андроид. Вначале разберём, как включить данный специальный режим на устройствах с Android 11, 10 и 9.
Если у вас оболочка от производителя, могут быть небольшие отличия. Для этого:
- Заходим в «Настройки», выбираем раздел «О телефоне».
- Находим в списке графу «Номер сборки», нажимаем на него несколько раз и вводим пароль, так будет включён «Режим разработчика».
- Возвращаемся в основное меню «Настройки» и выбираем вкладку «Система»
- Далее зайдите в отдел “Дополнительно”
- Теперь откройте раздел для “Разработчиков”
- Переведите ползунок в положение “ВКЛ”
Зачем «рутировать» планшет или смартфон?
Рут-доступ — это, грубо говоря, максимальные права в операционной системе. Они позволяют делать резервное копирование всех контактов, содержимого сообщений, телефонной истории, любых файлов и информации.
Рут-права позволяют использовать Android-устройство по максимуму
По умолчанию, Андроид не предлагает таких возможностей. Также рут-доступ позволяет изменять оформление: менять иконки приложений, системные звуки и так далее. Но самое главное, что можно делать с таким доступом, — регулировать процессы, которые загружаются в память.
Операционная система построена таким образом, что каждое запущенное приложение имеет событие AfterStart. В нём может быть целый список действий, вплоть до запуска других процессов. Часто это показ рекламы, сбор статистики и другие откровенно «ненужные» вещи. С помощью рут-прав и небольших приложений можно гибко управлять работой как Андроид в целом, так и отдельных программ.
Как включить режим отладки на Android 8, 7, 6, 5
Чтобы включить специальный режима usb debugging или отладку по USB на более старых версиях Андроид: 8,7, 6, 5, вам предстоит проделать схожие шаги.
- Включить «Режим разработчика» так же, как и на более новых версиях Андроид через «Настройки»-«О телефоне».
- После этого заходим вновь во вкладку «Настройки»- «Для разработчиков».
- Находим строку «Отладка». Здесь включаем функцию «Отладка по USB».
Проблемы и способы их решения
Телефон не реагирует на команды
Для работы с ADB необходимо, чтобы кабель поддерживал передачу данных, а не только зарядку аккумулятора. Если с этим моментом проблем нет, то убедитесь, что отладка включена, а подключаемый компьютер находится в числе доверенных устройств (если такие списки ведутся системой).
Обратите внимание, что посылать команды, требующие USB-отладки, можно только, когда система полностью загрузилась. Например, ADB нельзя использовать, если устройство выключено или находится в режимах fastboot либо recovery.
Кнопка «Отладка по USB» неактивна
При подключении к компьютеру старые версии «Андроида» предлагают выбрать режим, в котором будет работать устройство (например, «USB-модем» или «Передача файлов»). Если в этом списке пункт «Отладка по USB» не нажимается или отсутствует, но вы уже включали её по инструкции из этого материала, не вытаскивая кабель, перейдите к панели быстрого доступа и откройте уведомление о подсоединении. Далее остаётся лишь активировать функцию через окно, открываемое этим оповещением.
Функционал, раскрываемый USB-отладкой, значительно помогает в выполнении многих задач и особенно важен на случай проблем с экраном. Даже если в момент поломки дисплея особенность была отключена, ничто не помешает активировать её вместе с установкой CWM либо TWRP, соблюдая порядок действий, описанный в материале.
Поделиться ссылкой:
Как включить отладку по USB на старых версиях Android 4.2 и ниже
Если вам нужно включить режим отладки на Android старых версий, ниже 4, то предстоит проделать совершенно другие шаги.
- Открываем «Настройки» и переходим во вкладку «Приложения».
- Далее следуем в окно «Разработка».
- Уже после включаем режим отладки по USB.
- Для подтверждения нажимаем «Да».
Пройди тест на тему «Легенды 90-х» вспомни, что из этого было у тебя?
Процедура активации на разных версиях
Версия Андроид 2.0 — 3.0
Если у вас старое Андроид-устройство, на борту которого установлена система версии 2.0 и 3.0, то для активации отладки необходимо сделать несколько простых шагов:
Версия Андроид 4.0, 5.0 и 6.0
На Android четвертой, пятой и шестой версии, предстоит немного повозится, поскольку режим отладки в них старательно спрятан от глаз пользователя.
Как включить режим отладки USB на Андроид последних версий? Чтобы осуществить это, нужно проделать следующие шаги:
USB debugging на Samsung
Немного по-другому включается режим отладки по USB на устройствах Samsung. Вначале, так же, как и в указанных выше вариантах, проверяем работу функции «Режим разработчика». Для этого:
- Заходим в меню «Настройки», выбираем раздел «О телефоне» и включаем данный режим.
- Входим в «Настройки».
- Нажимаем на значок «Параметры разработчика», он отобразится после активации режима разработчика.
- Вы увидите вкладку со списком всех доступных опций в расширенном формате. Выбираете раздел «Отладка». Активируете «Отладка USB».
- Разрешаем телефону отладку по USB. Нажимаете «Ок».
Что делать, если ничего не работает
Для работы с отладкой по USB используются специальные ADB-драйверы (Android Debug Bridge, дословно «мост для отладки Android»), которые можно скачать с сайта Google, официальная страница находится по ссылке: https://developer.android.com/studio/index.html. Давайте разберёмся, что делать, если ADB не определяет устройство, почему невозможно использовать режим отладки по USB.
Убедитесь, что мобильное устройство обнаружено компьютером
. Для этого:
- Проверьте USB-кабель на повреждения. Особенное внимание обратите на сильные изгибы, участки кабеля около штекеров, где часто ломаются соединительные провода. Попробуйте использовать для подключения другой кабель. Если проблема действительно в физических дефектах — замените кабель.
- Попробуйте воткнуть штекер в другой USB-порт на компьютере. Желательно использовать порты на задней стороне системного блока, так как задние порты расположены непосредственно на материнской плате. Передние USB-порты не всегда подключены правильно, из-за чего и возникает проблема.
- Попробуйте подключить Android-устройство к другому компьютеру. Иногда бывает, что какой-то определённый ПК неправильно распознаёт смартфон или планшет и не считывает с него нужные данные. Если на другом компьютере устройство распознаётся правильно, несите свой ПК в ремонт и объясните проблему, так как причины неполадок могут быть разные.
- Попробуйте отключить все USB-устройства от компьютера. Некоторые из них могут мешать смартфону или планшету нормально подключиться к ПК.
Убедитесь, что используете официальную прошивку производителя устройства
. Если вы установили на смартфон или планшет стороннюю прошивку (такую, как CyanogenMod или подобные), то отладка по USB может работать некорректно.
Убедитесь, что установили нужные ADB-драйвера
. Есть разные версии драйверов для разных устройств. Все они распределены по моделям смартфонов и планшетов на официальном сайте. Также есть и универсальные ADB-драйвера, но использовать их лучше только в том случае, если для вашего устройства нет отдельного драйвера, так как с универсальными драйверами возможны проблемы с подключением, которые можно разрешить только со службой поддержки Google.
Разработчикам программного обеспечения лучше использовать не отдельные ADB-драйвера, а систему Android Studio, которую также можно скачать с официального сайта: developer.android.com. В Android Studio настройка драйверов происходит автоматически, кроме того, там присутствует эмулятор Android для компьютера, так что отладка по USB может и не понадобиться.
На Honor Huawei
По схожей инструкции подключается режим отладки или usb debugging на устройствах производителей Honor и Huawei. Для этого:
- Включаете «Настройки»-«Система».
- Выбираете вкладку «О телефоне».
- Нажимаете на строку «Номер сборки» несколько раз, пока не появится сообщение: «Вы стали разработчиком!».
- После этого возвращаемся в раздел «Система» и переходим во вкладку «Для разработчиков».
- Находим строку «Отладка по USB», включаем её.
- Подтверждаем действие – «Ок».
Какой ты инструмент? Пройди тест и узнаешь
Проверка кабеля и порта
Прежде чем лезть в настройки телефона, устанавливать драйверы и проклинать тот день, когда вы купили себе этот Андроид, проверьте кабель и порт USB. Я как-то очень удивился, что компьютер перестал определять смартфон, который раньше прекрасно видел. Оказалось, что кабель приглянулся коту, который его перегрыз. Из этой ситуации я сделал два вывода: провода надо убирать в ящик и осматривать перед подключением. Кот никаких выводов не сделал. Если на проводе не обнаружено заломов, прокусов, разрывов и других механических повреждений, проверьте порт USB. Попробуйте подключиться к другому разъему или вставить в этот же порт иное устройство — например, мышь.
Если на компьютере установлена Windows XP, то срочно ищите возможность перейти хотя бы на «семерку». Но для начала можно просто установить протокол MTP, чтобы XP научилась работать с Android. Фишка в том, что когда появилась первая версия Android, Microsoft выпустила уже Windows 7. Поэтому протокола MTP в XP нет, и приходится устанавливать его отдельно. Скачать MTP можно
Если любое другое устройство компьютер определяет, а телефон категорически не хочет видеть, то пора переместить фокус на настройки Android и особенности подключения. Да, существует вероятность механического повреждения разъема microUSB на телефоне, но я с таким пока не сталкивался. Если у вас будет что-то сломано, вы, скорее всего, это заметите.
Чаще всего невозможность установить соединение между компьютером и телефоном связана с программными ошибками. Если ни один из способов, перечисленных ниже, не поможет решить проблему, обратитесь в сервисный центр — кажется, смартфон действительно нуждается в ремонте.
Как включить отладку по usb на андроид Xiaomi
Процесс подключения USB отладки на телефонах и планшетах Xiaomi также не вызывает трудностей. Для этого:
- В меню «Настройки» выбираете графу «О телефоне».
- Листаете до строки «Версия MIUI» и несколько раз нажимаете на неё, пока не появится уведомление о том, что вы стали разработчиком.
- Возвращаемся в основное меню «Настройки» и переходим к разделу «Расширенные настройки».
- Далее открываем параметр «Для разработчиков»-«Отладка».
- Делаем активной строку «Отладка по USB».
Супер тест на тему «Деньги» и как вы умеете с ними дружить?
Ответ
Режим отладки по usb (debugging mode) обычно требуется для получения root доступа (прав суперпользователя) или модификации и доработки прошивок, другими словами – внесение изменений в ОС на более глубоком уровне. Изначально этот режим был создан для разработчиков, он позволяет:
- Производить оптимизацию приложений и самой операционной системы
- Проверять как функционирует созданная программа с ОС
- Выявлять сбои в работе
- Проводить тест аппаратных компонентов
- Обновлять ПО
- Создавать резервную копию
- Получать доступ к файловой системе смартфона с компьютера
- Выполнять восстановление телефона
- Получать подробную статистику процессов
Сама служба отладки называется ADB (Android Debug Bridge). Включить режим отладки можно на всех устройствах Xiaomi через настройки телефона/планшета. В зависимости от версии вашей системы, расположение нужного пункта меню может немного отличаться.
- Переходим по следующему пути Настройки-Общие-О смартфоне
- Находим строку с номером сборки (версия miui), затем нажимаем на нее примерно 7 – 10 раз
- Должно появится уведомление о включении меню для разработчиков
- Возвращаемся в настройки, переходим в «Дополнительно» и находим пункт «Для Разработчиков»
- В этом меню находим опцию «Отладка по USB» и ставим галочку напротив, на этом все.
Стоит упомянуть, что после первого подключения к компьютеру в режиме отладки, на телефоне нужно будет подтвердить подключение.
Если смартфон не определяется, причины обычно три:
- Устройство заблокировано — нужно просто разблокировать смартфон
- Неподходящий порт usb — используйте только порты находящиеся сзади и версии 2.0
- Отсутствуют драйвера – скачайте программу MI PC Suite или найдите драйвера отдельно
Отладка по USB — это такой режим Android-устройства, в котором оно предоставляет расширенный доступ к своей ОС для компьютерных программ. Этой функцией активно пользуются разработчики приложений.
Но для обычных пользователей режим отладки тоже может быть полезен. Благодаря ему утилиты вроде PhoneRescue случайно уничтоженные файлы. А такие приложения, как Helium, создают данных мобильного устройства с помощью ПК. Это лишь типичные примеры. Различных ситуаций, в которых вам может пригодиться отладка по USB, немало.
Включить режим отладки через компьютер
Для того чтобы начать использовать специальный режим работы на вашем устройстве и включить режим отладки, необходимо изменить настройки компьютера или ноутбука. Для корректной работы режима нужно будет:
- Установить на компьютер программу ADB (Android Debug Bridge). Для настройки
- После скачивания распаковываем архив в доступную папку.
- Открываем командную строку из этой папки. Для этого нажимаем правой кнопкой мыши на свободное пространство папки и зажимаем кнопку «Shift».
- В открывшемся окне выбираем параметр «Открыть окно PowerShell».
- Подключаем ваш телефон. Для этого изменяем режим USB на режим «передачи файлов (MTP)».
- В командной строке вводим: adb devices
- На экране телефона появится окно с просьбой разрешить доступ. Нажимаем «Ок».
- Ещё раз вводим команду adb devices.
- В командной строке должен появится серийный номер вашего устройства. После этого устройство готово к подключению к компьютеру. Вы можете работать в режиме отладки по USB и пользоваться фирменной утилитой HiSuite.Чтобы проверить исправность подключённого режима, подключаете устройство к вашему ПК с помощью кабеля (до этого обязательно установите драйвера для него). Запускаете программу ADB или любую другую для работы со смартфоном, и появится окно с запросом о подключении. Стоит разрешить действие, и можете приступать к работе.
Кто вы в мире Ведьмака?
Полезные команды в режиме отладки
Когда USB-отладка правильно настроена, можно посылать команды через ADB либо ADB Run. Поскольку последняя программа имеет более доступный начинающим пользователям интерфейс, большего внимания заслуживает первое приложение, официально выпущенное компанией Google.
Создание скриншота
Чтобы заскринить экран, не пользуясь боковыми клавишами и даже отдельной кнопкой, предусмотренной на некоторых телефонах фирмы ASUS, укажите следующее:
adb shell screencap /sdcard/screen.jpg
Скриншот с названием screen.jpg будет находиться в корне внешней MicroSD-памяти. Можно указать любое другое имя, а кроме расширения JPG поддерживается PNG. После понадобится «вытащить» изображение из памяти девайса:
adb pull /sdcard/screen.jpg
Для скриншота recovery подойдёт следующая команда:
adb pull /dev/graphics/fb0
Обратите внимание, что в этом случае файл будет иметь расширение fb0. Сконвертировать его в PNG можно через отдельно скачиваемый плагин FFMPEG. Для него потребуется данная команда:
ffmpeg -f rawvideo -pix_fmt rgb32 -s 1560×720 -i fb0 fb0.png
Как результат, появится документ fb0.png с разрешением 1560 на 720 пикселей. Обратите внимание, что нужно указывать настоящий размер экрана, а также учесть, в каком положении на момент создания скриншота находился девайс: вертикальном или горизонтальном.
Запись видео
Не возникнет проблем и в создании видеороликов через функции ADB:
adb shell screenrecord —verbose /sdcard/video.mp4
Будет создана запись длиною в три минуты, которая сохранится на SD-карте под названием video.mp4. Возможна более детальная настройка:
- —size – размер экрана (по умолчанию используется нативный);
- —bit-rate – частота обновления (например, 6000000 равен 6 Мбит);
- —time-limit – время в секундах, в течение которого делается запись с сохранением логов (по умолчанию – 180).
Для принудительной остановки любых процессов, связанных с ADB, следует воспользоваться комбинацией Ctrl+C.
Получение логов
Действия записываются процессами logcat и dmesg. Их легко сохранить в виде файлов:
adb logcat > logcat.txt
adb dmesg > dmesg.txt
Как итог, появятся текстовые документы, содержащие информацию о действиях, произведённых с девайсом в последнее время.
Резервное копирование софта
Создать бэкап приложений можно без утилит наподобие Titanium Backup, для этого понадобится команда adb backup. Она поддерживает следующие необязательные параметры:
- —all создаёт копии всех программ, имеющихся на телефоне;
- —f – название файла, под которым будет сохранён бэкап;
- —apk – включить исполняемый файл в резервную копию (если не указать или задать —noapk, сохранится только информация приложения);
- —obb – добавить файлы .obb в копию (противоположность – —noobb, используемая по умолчанию);
- —shared – бэкап вместе с данными программы, сохранёнными на SD-карте (по умолчанию не включено, поэтому используется —noshared);
- —system (по умолчанию) показывает, стоит ли копировать системный софт (есть вариант —nosystem).
После, если не введён ключ —all, потребуется указать имена приложений, которые нужно добавить в бэкап.
Отладка по USB включена, и устройство Android не определяется
Иногда пользователи могут столкнуться с данной проблемой. После подключения необходимых режимов на телефоне и установки программ на компьютере подключаемое устройство не определяется.
- В такой ситуации, прежде всего, проверьте наличие нужных драйверов Android, если необходимо переустановите или обновите их.
- Ещё одной причиной этой ошибки может быть блокировка смартфона или планшета. Для корректной работы режима отладки по USB следует разблокировать устройства. Кроме этого не рекомендуем использовать порт USB 3.0, только USB 2.0.
- Если ничего из вышеперечисленного не помогло, и вы всё равно задаётесь вопросом, как включить режим отладки USB, советуем изменить вид подключения к компьютеру. Для этого:
- Подключаем устройство к ПК.
- Тянем информационный бар вниз и выбираем раздел «Выбрать подключение USB»
- Нажимаем на «Режим PTP».Таким образом, вы сможете подключить устройство к компьютеру и начнёте необходимую работу со смартфоном или планшетом.
Работа с устройствами 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 устройств: int UsbConstants.USB_CLASS_PRINTER = 7; Класс предельно простой. В рамках этого класса устройство должно поддерживать:
- Обязательный bulk out endpoind для отправки данных на принтер
- Опциональный bulk in endpoind для получения статуса принтера
- 3 управляющих запроса
int GET_DEVICE_ID = 0; int GET_PORT_STATUS = 1; int SOFT_RESET = 2; Код, приведенный ниже, предоставляет функциональность, аналогичную устройству /dev/usb/lp в Linux. Далее нам нужен фильтр, преобразующий исходный документ в пакет данных, понятный конкретной модели принтера. Но это тема иной статьи. Как один из вариантов — можно собрать ghostscript с помощью NDK.
Для работы с устройством нам в первую очередь нужно:
1. Найти устройство. В примере для простоты я ищу первый попавшийся:
UsbDevice findDevice() { for (UsbDevice usbDevice: mUsbManager.getDeviceList().values()) { if (usbDevice.getDeviceClass() == UsbConstants.USB_CLASS_PRINTER) { return usbDevice; } else { UsbInterface usbInterface = findInterface(usbDevice); if (usbInterface != NULL) return usbDevice; } } return NULL; } UsbInterface findInterface(UsbDevice usbDevice) { for (int nIf = 0; nIf < usbDevice.getInterfaceCount(); nIf++) { UsbInterface usbInterface = usbDevice.getInterface(nIf); if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_PRINTER) { return usbInterface; } } return NULL; } UsbDevice mUsbDevice = findDevice(); UsbInterface mUsbInterface = findInterface(mUsbDevice); 2. Получить endpoint’ы: for (int nEp = 0; nEp < mUsbInterface.getEndpointCount(); nEp++) { UsbEndpoint tmpEndpoint = mUsbInterface.getEndpoint(nEp); if (tmpEndpoint.getType() != UsbConstants.USB_ENDPOINT_XFER_BULK) continue; if ((mOutEndpoint == NULL) && (tmpEndpoint.getDirection() == UsbConstants.USB_DIR_OUT)) { mOutEndpoint = tmpEndpoint; } else if ((mInEndpoint == NULL) && (tmpEndpoint.getDirection() == UsbConstants.USB_DIR_IN)) { mInEndpoint = tmpEndpoint; } } if (mOutEndpoint == NULL) throw new IOException(«No write endpoint: » + deviceName); 3. Непосредсвенно открыть устройство: mConnection = mUsbManager.openDevice(mUsbDevice); if (mConnection == NULL) throw new IOException(«Can’t open USB connection:» + deviceName); mConnection.claimInterface (mUsbInterface, true); 4. После этого мы можем читать и писать в устройство: public int read(final byte[] data) throws IOException { int size = Math.min(data.length, mInEndpoint.getMaxPacketSize()); return mConnection.bulkTransfer(mInEndpoint, data, size, getReadTimeout()); } public int write(final byte[] data, final int length) throws IOException { int offset = 0; while (offset < length) { int size = Math.min(length — offset, mInEndpoint.getMaxPacketSize()); int bytesWritten = mConnection.bulkTransfer(mOutEndpoint, Arrays.copyOfRange(data, offset, offset + size), size, getWriteTimeout()); if (bytesWritten <= 0) throw new IOException(«None written»); offset += bytesWritten; } return offset; } 5. По завершении работы — закрыть устройство: mConnection.close();
Преобразователи USB-Serial
В отличие от притеров, преобразователи USB-Serial гораздо менее стандартизированы. Существует несколько распространенных чипов, для которых существенно отличается установка параметров последовательного порта — битрейта, чётности и проч. К счастью, есть библиотека github.com/mik3y/usb-serial-for-android, поддерживающая практически все существующие чипы. Библиотека полностью скрывает USB API, сводя все необходимые действия к минимуму вызовов с минимумом параметров.
1. Найти и открыть устройство:
UsbSerialPort mUsbSerialPort; UsbManager mUsbManager = (UsbManager) DEVICE.getSystemService(Context.USB_SERVICE); String type = “FTDI”; for (UsbDevice usbDevice: mUsbManager.getDeviceList().values()) { UsbSerialDriver usbSerialDriver = UsbSerialProber.probeSingleDevice(usbDevice); if (usbSerialDriver == NULL) continue; if (!type.equals(usbSerialDriver.getShortDeviceName())) continue; mUsbSerialPort = usbSerialDriver.getPort(0); mUsbSerialPort.open(mUsbManager); break; } 2. Установить параметры последовательного порта: mUsbSerialPort.setParameters(baudRate, dataBits, stopBits, parity); 3. Читать и писать в порт: public int read(final byte[] data) throws IOException { return mUsbSerialPort.read(data, getReadTimeout()); } public int write(final byte[] data, final int length) throws IOException { return mUsbSerialPort.write(data, length, getWriteTimeout()); } 4. По завершении работы — закрыть порт: mUsbSerialPort.close();
Резюме
Надеюсь, что мне удалось показать, что работа с USB периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.
Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.
Когда пригодится эта инструкция
Представленная далее инструкция пригодится в том случае, если смартфон или планшет перестали работать в обычном режиме. Чаще всего это происходит из-за падения устройства, системного сбоя или повреждения дисплея. Заметим, что для успешного выполнения руководства на телефоне должно быть установлено кастомное рекавери.
Не многие знают, но на каждом Android-устройстве имеется меню восстановления, позволяющее проводить со смартфоном различные действия. Например, сбрасывать телефон до заводских настроек, удалять вирусы или обновлять прошивку. По умолчанию каждый аппарат оснащён Stock Recovery, установленным производителем с завода. Некоторые пользователи устанавливают Custom Recovery, то есть меню восстановления, содержащее ряд дополнительных функций. Самыми распространёнными типами кастомного рекавери является TWRP и CWM.
Если на вашем смартфоне установлено стоковое рекавери, то расстраиваться не стоит. В статье также будет рассмотрен способ, позволяющий включить отладку по USB практически на любом устройстве. Только есть один нюанс – желательно иметь беспроводную USB-мышь, а также кабель OTG.
Проверка настроек экономии энергии
Windows старается экономить энергию, чтобы те же ноутбуки работали от батареи дольше. Одним их факторов экономии является автоматическое отключение портов USB. Иногда это приводит к тому, что внешние устройства вообще не подключаются. Чтобы проверить эти параметры и устранить недостатки:
- Откройте Панель управления.
- Включите режим отображение «Крупные значки».
- Перейдите в раздел «Электропитание».
- Найдите используемую схему и перейдите к ее настройке.
- Выберите изменение дополнительных параметров.
- Раскройте параметры USB и выставите в пунктах «От батареи» и «От сети» значение «Запрещено».
- Нажмите «Ок» для сохранения конфигурации.
Это интересно: Как посмотреть пароль Wi-Fi на телефоне Android с правами root и без
Я не замерял, как сильно влияет на продолжительность автономной работы запрет на автоматическое отключение портов, но заметной разницы нет. Зато устраняются проблемы с подключением внешних устройств вроде телефонов на Android.
Какой разъем использовать
Много вопросов касается того, какой разъем USB использовать на телефоне Honor 8a. Для подключения применяется стандартный USB-С или другой типа разъема с одной стороны и стандартный USB компьютера с другой. После соединения двух девайсов остается выбрать один из трех рассмотренных выше вариантов. В случае неуспешного соединения можно включить отладку телефона Honor по рассмотренной выше схеме.
При отсутствии подключения Хонор по ЮСБ нужны настройки или прохождение следующих шагов:
- Проверьте исправность используемого кабеля.
- Убедитесь в целостности разъема USB на компьютере.
- Попробуйте подключить смартфон к другому порту на ПК / ноутбуке.
- Проверьте наличие проблем с ПО. Обратите внимание на появление значка USB после соединения. На ПК / ноутбуке войдите в Диспетчер устройств и найдите драйвер ADB/HDB. Если его нет, а на значке стоит восклицательный знак, драйвер работать не будет и нужно его переустановить.
- Выберите правильный вариант при подключении телефона Honor. Для отправки файлов необходимо выбрать Передача файлов. Если выбрать Только зарядка, информация по шнуру передаваться не будет.
- Проверьте активацию отладки. Как ее включить, если USB отключено на Honor, рассмотрено ниже.
Если проблема не уходит, причиной может быть стороннее приложение для соединения двух девайсов. Для подключения телефона Honor к ПК / ноутбуку рекомендуется использовать Huawei HiSuite. Для ее установки подключите смартфон к ПК / ноутбуку с помощью USB, откройте Мой компьютер и выберите HiSuite в перечне портативных устройств. На следующем шаге два раза жмите на HiSuiteDownloader.exe.