- Android studio подключить usb
- Подключаем USB-устройства
- UsbAccessory
- UsbDevice
- UsbManager
- UsbDeviceConnection
- UsbInterface
- UsbEndpoint
- UsbRequest
- Работа с устройствами USB в Android
- Права доступа
- Принтеры
- Преобразователи USB-Serial
- Резюме
- Rebel code
- инструкции, руководства, документация
- Подключение реальных android-устройств в Android Studio и Eclipse
- Инструкции по теме:
- Добавить комментарий Отменить ответ
Android studio подключить usb
В уроке по настройке Android Studio были показаны основные шаги по созданию Android-эмулятора для тестирования созданных приложений. Использование эмулятора, конечно, довольно удобно, но лишь в том случае, если у вас довольно мощный компьютер и загрузка эмулятора, а также его работа не заминают уйму времени. Но не всем везет иметь такие машины-монстры, поэтому в данной статье я расскажу о довольно годном способе тестирования своих работ в Android Studio с помощью реального подключенного устройства.
Эта статья подойдет вам в 2-х основных случаях:
1) Ваш компьютер недостаточно мощный для быстрой работы эмулятора (будь то в Android Studio или Eclipce );
2) У вас завалялся старенький Android-смартфон и вы не знаете куда его деть (дарить/выбрасывать жалко).
Стоит также отметить, что этот способ может быть полезен и обладателям производительных компьютеров, ведь тестирование на эмуляторе — это одно, а пронаблюдать работу приложения на настоящем смартфоне — совсем другое.
Итак, для того чтобы подключить смартфон к Android Studio в первую очередь понадобиться установить нужный набор драйверов. Как правило, мучения со стандартным набором драйверов часто ни к чему не приведут, поэтому рекомендую сразу качать вот этот файл (не боись — это не вирус, хоть антивирус и ругается) и, предварительно удалив старые драйвера, установить этот файл (во время установки телефон лучше не подключать).
После установки драйверов, подключите по USB свой аппарат к компьютеру. Все нужные настройки запустятся и автоматически установятся.
Далее запускаем Android Studio. Идем в Tools — Android и ставим галочку напротив строки «Enable ADB Integration» (ADB — Android Debug Bridge). После этого нужно настроить Android Studio так, чтобы при нажатии на зеленую кнопочку «Run» ваше приложение сразу устанавливалось и запускалось на подключенном смартфоне. Идем в Run — Edit Configurations. Появляется следующее окно:
и в блоке «Target Device» ставим галочку на пункт «USB Device» и жмем OK.
Все, поздравляю, если вы все сделали правильно, драйвера определили ваше устройство, то при нажатии на кнопку запуска приложения (выделено красным):
приложение установиться и запуститься на подключенном устройстве.
После этого вам остается только взять в руки подключенный аппарат и тестировать свое программистское произведение.
Стоит отметить, что если приложение установилось, но автоматически не запустилось, то скорее всего, это значит, что где то в приложении есть ошибка (хотя она может быть и не подсвечена в Android Studio, например, просто пропущен важный кусок кода).
Надеюсь эта статья вам пригодиться. Удачи в начинаниях!
Источник
Подключаем USB-устройства
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 поддерживают на уровне системы классы устройств:
- Устройства ввода — клавиатуры, мыши, джойстики (HID)
- Накопители (Mass Storage)
Устройства типа модемов, сетевых адаптеров и вебкамер имеют ограниченную поддержку и зависят от модели вашего устройства.
Можно также упомянуть USB accessory mode, который появился с версии Android 3.0. Этот режим, например, используется при соединении телефона и фотокамеры.
Существует специальный стандарт, которого должны придерживаться все Android-устройства, использующие USB-порт. Следование стандарту обеспечивает совместимость и правильную работу устройств.
Основным пакетом для работы с протоколом USB является android.hardware.usb, который появился в Android 3.1 (API 12).
UsbAccessory
Класс UsbAccessory необходим при режиме USB accessory mode и позволяет узнать различную информацию о подключённом устройстве: название производителя, модель, версия и т.д.
UsbDevice
Класс UsbDevice отвечает за устройства, подключённые в режиме USB host mode и содержит информацию о возможностях, протоколе, классе и идентификаторе и т.д. При работе используется сервис UsbService, доступный через UsbHostManager
UsbManager
UsbManager — один из основных классов для работы с USB. Позволяет обмениваться информацией между устройствами, например, получить список присоединённых устройств.
UsbDeviceConnection
Класс UsbDeviceConnection содержит методы для отправки и получения данных.
UsbInterface
Класс UsbInterface отвечает за интерфейсы подключенных устройств.
UsbEndpoint
Класс UsbEndpoint отвечает за endpoint.
UsbRequest
Класс UsbRequest нужен для чтения и записи данных от устройств в асинхронном режиме.
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью
Источник
Работа с устройствами 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 периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.
Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.
Источник
Rebel code
инструкции, руководства, документация
Подключение реальных android-устройств в Android Studio и Eclipse
Эта простая инструкция поможет подключить обычные физические android-устройства в режиме USB debugging mode к среде разработки в Ubuntu. Тестирование приложения на реальном устройстве гораздо продуктивнее и эта инструкция расскажет как сделать это на устройстве, без дополнительных утомительных действий. Достаточно просто запустить приложение в среде разработки Android Studio или Eclipse и оно автоматически стартует на устройстве. С выходом новых карт Google Maps API v2 для ОС Android, это стало весьма актуально, т.к. на данный момент не получится полноценно использовать Google Play Services на эмуляторе.
Прежде чем начать подключать устройство к системе, следует включить режим USB debugging на самом смартфоне или планшете, это включается в меню:
Android 3.2 и более ранние версии:
Settings > Applications > Development
Android 4.0 и выше:
Settings > Developer options
ВАЖНО: В Android 4.2 и выше, Developer options скрыто по умолчанию. Для активации опции нужно зайти в меню Settings > About phone и нажать на Build number семь раз. После этого следует вернуться в предыдущий пункт Developer options.
Теперь начнём, добавим правило работы с нужным нам USB устройством, для этого создадим следующий файл:
sudo touch /etc/udev/rules.d/51-android.rules
Далее откроем файл на редактирование:
sudo nano /etc/udev/rules.d/51-android.rules
Добавим в файл следующюю строку с атрибутами производителя устройства и доступа к устройствам на уровне системы:
SUBSYSTEM==»usb», ATTR
ВАЖНО: четырёхсимвольное значение параметра idVendor (0bb4) должно совпадать с идентификатором производителя устройства из таблицы USB Vendor IDs ниже.
Company | USB Vendor ID |
---|---|
Acer | 0502 |
ASUS | 0b05 |
Dell | 413c |
Foxconn | 0489 |
Fujitsu | 04c5 |
Fujitsu Toshiba | 04c5 |
Garmin-Asus | 091e |
18d1 | |
Haier | 201E |
Hisense | 109b |
HTC | 0bb4 |
Huawei | 12d1 |
Intel | 8087 |
K-Touch | 24e3 |
KT Tech | 2116 |
Kyocera | 0482 |
Lenovo | 17ef |
LG | 1004 |
Motorola | 22b8 |
MTK | 0e8d |
NEC | 0409 |
Nook | 2080 |
Nvidia | 0955 |
OTGV | 2257 |
Pantech | 10a9 |
Pegatron | 1d4d |
Philips | 0471 |
PMC-Sierra | 04da |
Qualcomm | 05c6 |
SK Telesys | 1f53 |
Samsung | 04e8 |
Sharp | 04dd |
Sony | 054c |
Sony Ericsson | 0fce |
Sony Mobile Communications | 0fce |
Teleepoch | 2340 |
Toshiba | 0930 |
ZTE | 19d2 |
Идентификатор может быть не таким однозначным, например часы Sony Smartwatch 3 имеют идентификатор 0fce, что соответствует вендору Sony Mobile Communications.
Установим нужные права на только что созданный файл:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
Теперь подключим или переподключим наше устройство к порту USB и перейдём в каталог platform-tools в Android SDK. В моём случае он располагается в директории /opt:
если установлен Android Studio Bundle, то путь может быть таким:
И выполним в консоли такой код:
В выводе должны отобразиться устройства виртуальные и физические. Идентификатор физического устройства похож на:
Если появляется ошибка «adb: команда не найдена», то нужно уствновить пакет:
sudo apt-get install android-tools-adb
При ошибке: adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev
Последний шаг, настройка исходного кода приложения, а именно файла AndroidManifest.xml. Нужно просто добавить параметр android:debuggable в тэг , например:
ВАЖНО: перед выпуском приложения, параметр android:debuggable следует удалить.
Теперь при запуске проекта в Android Studio или Eclipse, будет предлагаться передать его на физическое устройство или на эмулятор. После выбора первого — проект стартует на смартфоне.
Инструкция написана на основе документации Using Hardware Devices.
Инструкции по теме:
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник