programacion - ¿Conectar el dispositivo USB al emulador de Android?
manual de android en pdf (4)
Hemos estado buscando en Android 3.1+ y su capacidad para leer / escribir en dispositivos USB conectados al puerto OTG / Host.
He encontrado algunos ejemplos de código que me permiten detectar y leer / escribir en un dispositivo USB HID, pero en este momento, simplemente no tengo un dispositivo físico compatible con 3.1+ para implementar y depurar remotamente.
¿Alguien sabe cómo puedo conectar mi dispositivo HID al emulador a través de PC / Eclipse para que la aplicación pueda detectar y leer / escribir en el dispositivo?
He intentado enumerar los dispositivos USB conectados actualmente pero no muestra ninguno, como sin duda supondría.
¿Algunas ideas?
Aclamaciones
AFAIK esto no es posible. Los emuladores de Android no emulan muchas cosas que existen en dispositivos reales ... pero esto me recuerda un intento de ejecutar ADB a través de Bluetooth .
Esta no es una respuesta directa y positiva a su pregunta, pero quizás pueda ayudarlo a encontrar una solución alternativa a la que hice: Instale un "emulador" en una netbook x86 física (arranque dual) y use los enlaces a los que se hace referencia en mis publicaciones para logra lo que estás tratando de hacer a través de WiFi o Bluetooth.
Espero que esto ayude.
Crea una máquina virtual de Android en virtualBox o vm player con esta imagen .
Conecte el USB y con Eclipse usando la conexión ADB (la IP de su dispositivo).
El emulador de Android está basado en QEMU. Incluso si la versión del emulador es tan antigua, parece que hay soporte para pasar dispositivos USB desde el host. Aunque no parece estar disponible para dispositivos ARM, la máquina ARM emulada no tiene un controlador USB. (Ya he intentado habilitar todos los controladores de host USB para el kernel goldfish_armv7 basado en Linux 3.4, sin suerte. El emulador predeterminado del kernel goldfish_armv7 ni siquiera tiene habilitado el Host USB).
Si no está limitado a ARM y puede usar x86, le sugiero que visite http://www.android-x86.org/ , sus imágenes se pueden usar con una máquina QEMU i386 (o x86_64) estándar. Esto también produce un mejor rendimiento al usar la extensión KVM en Linux .
Para pasar un dispositivo USB con ID de proveedor 1234 y ID de dispositivo abcd , puede ejecutar el comando del emulador:
emulator -avd x86-machine -qemu -usb -usbdevice host:1234:abcd
O, cuando se utiliza QEMU:
qemu-system-i386 -m 1G -cdrom android-x86.iso -usb -usbdevice host:1234:abcd
Necesitará permisos de lectura / escritura para /dev/bus/usb/XXX/YYY
, para eso puede crear una regla udev como:
SUBSYSTEM!="usb", GOTO="end_skip_usb"
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess"
LABEL="end_skip_usb"
Ahora, al insertar el dispositivo USB, su emulador debe reconocer un dispositivo USB. Esto está probado para una instalación de Linux con una imagen de Android x86 4.3.
Instalé Android Guest en VirtualBox con el host de Windows 7 usando la imagen android-x86-4.0-r1-eeepc.iso desde here (debido a que la computadora de mi compañía bloqueó la BIOS y no pude habilitar la emulación vt-x. Tenía que instalar una versión antes de 4.4). Luego conectó una unidad USB, abrió VM - Configuración - USB en Virtualbox Manager, hizo clic en el segundo icono a la derecha con un signo más en él, eligió la unidad USB. Luego, Virtualbox instaló el controlador para la unidad USB. Después de que terminó, arrancó la máquina virtual de Android. Inicié OpenManager, fui a mnt / USB, ¡y los archivos de la unidad usb estaban allí!