Android hardware usb host xml где взять

Обновлено: 04.07.2024

Я разрабатываю приложение Android, в котором я должен общаться с устройством USB. Я попытался использовать стандартный google API в своем приложении, но список устройств всегда пуст.

То же самое, если я использую информацию об устройстве USB с google api. Список устройств, которые ищет google api, пуст,

lsusb дает следующие результаты:

мое устройство 2226:0014

журнал eclipse из :

Если я подключаю такие устройства, как адаптеры rs232, ключ bluetooth,ничего не происходит, и нет никакого результата от API и lsusb.

Prtocol устройства основан на библиотеке ezusb. Android В.: 4.0.3 kernel V.: 3.0.8 сборка прошивки: crane_evb-eng 4.0.3 IMLK74k 20120330

Есть ли какой-либо способ получить доступ к скрытым устройствам USB через API, или я должен реализовать поддержку этого устройства, написав драйвер и вставив его в прошивку?

UPDATE: даже если я создам информационный файл в *system/etc/usb_modeswitch.d/* с именем 2226_0014, содержащим

я получаю ту же ошибку: "No such file or directory"

4 ответа

Я пытаюсь получить некоторые данные с устройства USB, подключенного к моему телефону Android, который находится в режиме хоста. Я могу отправлять на него данные, но чтение не удается. Я просмотрел несколько примеров и попробовал все, что мог, но у меня нет никакого опыта в общении с USB, хотя к.

Я пытаюсь изучить соединение Android USB хост/аксессуар. Я читал, что android устройство может действовать как usb хост или usb аксессуар. Поэтому я создаю два проекта: Один из них usb хост-проект, другой usb вспомогательный проект. Я установил эти проекты на два разных устройства android. Один из.

в этой папке найдите файл с именем

в разделе <permissions> .

Перезагрузите устройство. Usb хост api должен работать.

Испытано на CUBE U30GT с android 4.

Отлично! Это сработало на моем Envizen V700NA под управлением Android 4.0.4.

Незначительная Опечатка: <feature name="android.hardware.usb.host">

Должно быть: <feature name="android.hardware.usb.host"/>

Работал как заклинание на телефоне micromax A120 canvas 2 (kitkat 4.4.2). теперь я могу контролировать свой Arduino! я использовал инструменты busybox для выполнения всей работы с командной строкой (иначе chmod не работал бы). мои шаги (возможно, некоторые и не требовались):

(3) Откройте окно terminal и станьте суперпользователем:

(4) файловая система может быть доступна только для чтения, поэтому вам, возможно, придется ее перемонтировать:

(5) Сделайте default.prop read/write:

(6) edit /default.prop, внесите следующие изменения:

в этой папке найдите файл с именем

(8) перезагрузите устройство. Usb хост api должен работать.

Я использую хост Android USB для подключения диска USB, я хочу читать и записывать данные на диск USB, но когда я bulkTransfer, это не удалось. Полученный буфер (strBuf) пуст, байты не получены. Я думаю, что, возможно, байты (bytes_w) отправляют на устройство usb неправильно, но я понятия об этом.

Я работаю над проектом, который включает в себя связь между устройством android и arduino. Заключительная часть проекта assembly будет представлять собой коробчатую конструкцию, на которой будет виден только экран устройства android (остальные стороны будут закрыты). Пространство важно; я хотел.

я использовал adb на MK809, Android 4.1 Jelly Bean, и команда:

adb перемонтировать /../../file.xml РАО adb толчок.

с обычной командой i'Vent разрешение и файл доступен только для чтения

Извините за мой плохой английский :P

Похожие вопросы:

Короче говоря, я разрабатываю встроенную систему, которая требует, среди прочего, моста от хост-порта USB к порту устройства (это только первый шаг, позже передаваемая информация будет отфильтрована.

Можно ли создать приложение для Android, которое может генерировать видеосигнал (HDMI или VGA) через USB? Любое устройство Android имеет порт miniUSB. Теоретически можно создать небольшое.

Я пытаюсь получить некоторые данные с устройства USB, подключенного к моему телефону Android, который находится в режиме хоста. Я могу отправлять на него данные, но чтение не удается. Я просмотрел.

Я пытаюсь изучить соединение Android USB хост/аксессуар. Я читал, что android устройство может действовать как usb хост или usb аксессуар. Поэтому я создаю два проекта: Один из них usb хост-проект.

Я использую хост Android USB для подключения диска USB, я хочу читать и записывать данные на диск USB, но когда я bulkTransfer, это не удалось. Полученный буфер (strBuf) пуст, байты не получены. Я.

Я работаю над проектом, который включает в себя связь между устройством android и arduino. Заключительная часть проекта assembly будет представлять собой коробчатую конструкцию, на которой будет.

Я пытаюсь понять, как подключить два устройства с питанием Android, а именно смартфон (Android 4.1.2) и плату разработчика android (Android 4.0.4) с приложениями, работающими на каждом, через USB и.

Я разрабатываю приложение для Android, в котором я должен общаться с USB-устройством. Я попытался использовать стандартный Google API в своем приложении, но список устройств всегда пуст.

то же самое, если я использую информацию об устройстве USB с Google api. Список устройств, которые ищет Google api, пуст,

команды lsusb дает следующие результаты:

мое устройство 2226:0014

Если я подключаю устройства, такие как rs232 адаптеры, Bluetooth-ключ, ничего не происходит, и нет никакого результата от API и lsusb.

Prtocol устройства основан на библиотеке ezusb. Android v: 4.0.3 В. ядра: 3.0.8 сборка прошивки: crane_evb-eng 4.0.3 IMLK74k 20120330

есть ли способ получить доступ к скрытым USB-устройствам через API, или я должен реализовать поддержку этого устройства, написав драйвер и исправив его в прошивку?

UPDATE: даже если я создаю файл info в * system/etc / usb_modeswitch.d / * с именем 2226_0014 содержащий

Я получаю ту же ошибку: "нет такого файла или каталога"

в этой папке найдите файл с именем

перезагрузите устройство. Api хоста Usb должен работать.

протестировано на CUBE U30GT с android 4.

отлично! Это сработало на моем Envizen V700NA под управлением Android 4.0.4.

Мелкие Опечатка: <feature name="android.hardware.usb.host">

должно быть: <feature name="android.hardware.usb.host"/>

работал как шарм на телефоне micromax a120 canvas 2 (kitkat 4.4.2). теперь я могу контролировать свой Arduino! я использовал инструменты busybox для выполнения всей работы командной строки (иначе chmod не работал бы). мои шаги (возможно, некоторые и не требовались):

(3) Откройте окно терминала и стать суперпользователем:

(4) файловая система может быть доступна только для чтения, поэтому вам может потребоваться переустановить это:

(5) сделать по умолчанию.проп читать / писать:

(6) редактировать /по умолчанию.проп, принять следующие изменения:

В недавней статье на 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 периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.

Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.

USB On The Go(OTG) - обсуждение

Прикрепленное изображение

В наш век, век технологий, любая информация в основном храниться в электронном виде, будь то текстовые файлы, фотографии, музыка, фильмы и.д. Как правило предметом для хранения выступает usb флешка. Но для её использования понадобиться устройство с usb портом, например компьютер, который не всегда бывает под рукой, в отличие от телефона/смартфона/планшета и т.д.. Так как же можно подключить флешку и другие устройства ( мышку, клавиатуру, джойстик, принтер и т.д ) к нашему телефону/смартфону/планшету и т.д. В этом нам поможет otg шнур. Что же такое OTG?
USB OTG ( On-The-Go) — дальнейшее расширение спецификации USB 2.0, предназначенное для лёгкого соединения периферийных USB-устройств друг с другом без необходимости подключения к ПК. Например к моделям смартфонов и телефонов, поддерживающих USB OTG, можно подключать некоторые USB-устройства. Обычно это флэш-накопители, клавиатуры, мыши и другие устройства, не требующие дополнительных драйверов.

Более подробное описание работы технологии привёл пользователь kargal в своём посте.

Прикрепленное изображение


Первый контакт - питание +5 Вольт. В паре с GND, осуществляет питание подключаемого устройства (флешки, карты памяти и пр.)
Второй контакт - Data-.
Третий контакт - Data +.
Четвёртый контакт - контакт OTG. Замыкается с GND для перевода смартфона/(любого поддерживающего OTG устройства с подобной распиновкой) в режим хоста - подачи на разъём напряжения.
Пятый контакт - контакт GND (Ground).
  1. Марка Вашего аппарата (полностью).
  2. OTG работает? ( Да работает, нет не работает). На телефон подаётся дополнительное питание или работает и без дополнительного питания ( т.е. Вы просто подключаете OTG кабель к смартфону, или у Вас Y-кабель, третий конец которого вы подключаете к источнику питания ( порт компьютера, внешний аккумулятор, USB хаб который подключен к источнику питания и т.д.).
  3. Версия андроида с которой у Вас работает OTG, либо наоборот - не работает.
  4. Какая прошивка у Вас стоит на смартфоне заводская(стоковая) или сторонняя(кастомная).
  5. Название и версия ядра с которой работает/не работает OTG. Ядро стоковое или кастомное?

  • Acer:
    Acer E700 Trio // версия андроида 4.4.2 с ядром 3.4.67 //

Читайте также: