Подключить USB-устройство к Android Emulator? - PullRequest
28 голосов
/ 24 октября 2011

Мы изучили Android 3.1+ и его возможность чтения / записи на USB-устройства, подключенные к порту OTG / Host.

Я нашел несколько примеров кода, которые позволяют мне обнаруживать и читать / записывать на USB HID-устройство, но на данный момент у меня просто нет физического совместимого с 3.1+ устройства для развертывания и удаленной отладки.

Кто-нибудь знает, как я могу подключить свое HID-устройство к эмулятору через ПК / Eclipse, чтобы приложение могло обнаруживать и считывать / записывать на / с устройства?

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

Есть идеи?

Приветствия

Ответы [ 4 ]

12 голосов
/ 12 ноября 2013

Эмулятор Android основан на QEMU.Даже если версия эмулятора настолько древняя, кажется, есть поддержка для передачи USB-устройств с хоста.Кажется, он недоступен для устройств ARM, хотя эмулируемая машина ARM не имеет контроллера USB.(Я уже пытался включить все хост-контроллеры USB для ядра goldfish_armv7 на базе Linux 3.4, но безуспешно. В ядре эмулятора по умолчанию goldfish_armv7 даже не включен Host USB.)

Если вы не ограничены ARM иможно использовать x86, тогда я предлагаю проверить http://www.android -x86.org / , его изображения можно использовать на стандартном компьютере QEMU i386 (или x86_64).Это также повышает производительность благодаря использованию расширения KVM в Linux .

Для передачи USB-устройства с идентификатором поставщика 1234 и идентификатором устройства abcd , вы можете запустить команду эмулятора:

emulator -avd x86-machine -qemu -usb -usbdevice host:1234:abcd

Или, при использовании QEMU:

qemu-system-i386 -m 1G -cdrom android-x86.iso -usb -usbdevice host:1234:abcd

Вам понадобятся разрешения на чтение / запись для /dev/bus/usb/XXX/YYY, для этого вы можете создатьправило udev, например:

SUBSYSTEM!="usb", GOTO="end_skip_usb"
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess"
LABEL="end_skip_usb"

Теперь, после вставки USB-устройства, ваш эмулятор должен распознавать USB-устройство.Это проверено для установки Linux с образом Android x86 4.3.

8 голосов
/ 23 мая 2013

AFAIK это невозможно.Эмуляторы Android не эмулируют многие вещи, которые существуют в реальных устройствах ... но это напоминает мне о попытке запустить ADB через Bluetooth .

Это не прямой положительный ответ на вашвопрос, но, возможно, он поможет вам найти обходной путь, как я это сделал: установите «эмулятор» на физический нетбук x86 (двойной загрузки) и используйте ссылки, указанные в моих постах , чтобы достичь своей целипытаюсь сделать это через WiFi или Bluetooth.

Надеюсь, это поможет.

2 голосов
/ 23 мая 2013

Создание виртуальной машины Android на VirtualBox или VM Player с этим образом .

Подключите USB и подключитесь к Eclipse с помощью ADB connect (IP вашего устройства).

enter image description here

0 голосов
/ 06 марта 2018

Установленный гость Android в virtualbox с хостом Windows 7, используя образ android-x86-4.0-r1-eeepc.iso из здесь (потому что компьютер моей компании заблокировал BIOS и я не смог включить vt-xэмуляцию пришлось установить версию до 4.4).Затем подключил USB-накопитель, открыл VM - Настройки - USB в Virtualbox Manager, щелкнул второй значок справа со знаком плюс, выбрал USB-накопитель.Затем Virtualbox установил драйвер для USB-накопителя.После того, как он закончил, загрузился Android VM.Запустил OpenManager, перешел на mnt / USB, и там были файлы USB-накопителя!

...