2011-10-24 17 views
26

Abbiamo esaminato Android 3.1+ e la sua capacità di leggere/scrivere su dispositivi USB collegati alla porta OTG/Host.Collegare il dispositivo USB all'emulatore Android?

Ho trovato alcuni esempi di codice che mi consentono di rilevare e leggere/scrivere su un dispositivo HID USB, ma al momento, semplicemente non ho un dispositivo fisico 3.1+ compatibile per la distribuzione e il debug remoto.

Qualcuno sa come posso collegare il mio dispositivo HID all'emulatore, tramite PC/Eclipse in modo che l'app possa rilevare e leggere/scrivere sul/dal dispositivo?

Ho provato ad elencare i dispositivi USB attualmente connessi ma non ne mostra nessuno, come indubbiamente indovinerai.

Qualche idea?

Cheers

risposta

6

AFAIK questo non è possibile. Gli emulatori Android non emulano molte cose che esistono nei dispositivi reali ... ma questo mi ricorda uno attempt to run ADB over Bluetooth.

Questa non è una risposta positiva diretta alla tua domanda, ma forse può aiutarti a trovare una soluzione alternativa come ho fatto: Installare un "emulatore" su un netbook fisico x86 (dual-boot) e utilizzare i collegamenti indicati in my posts per realizzare ciò che si sta tentando di fare tramite WiFi o Bluetooth.

Spero che questo aiuti.

+0

Ovviamente è possibile. – rolls

1

Crea Android Virtual Machine su VirtualBox o lettore vm con questo image

usb connect e connettersi con Eclipse utilizzando adb connect (ur IP del dispositivo)

enter image description here

7

L'emulatore di Android è basato su QEMU . Anche se la versione dell'emulatore è così antica, sembra che ci sia il supporto per passare i dispositivi USB dall'host. Tuttavia, non sembra disponibile per i dispositivi ARM, la macchina ARM emulata non ha un controller USB. (Ho già provato a abilitare tutti i controller host USB per il kernel goldfish_armv7 basato su Linux 3.4, senza fortuna.Il kernel dell'emulatore goldfish_armv7 non ha nemmeno USB Host abilitato.)

Se non sei limitato ad ARM e puoi usare x86, quindi suggerisco di controllare http://www.android-x86.org/, le sue immagini possono essere utilizzate con una macchina standard i386 (o x86_64) QEMU. Ciò offre anche prestazioni migliori utilizzando l'estensione KVM su Linux.

Per passthrough un dispositivo USB con dei vendor ID 1234 ID e dispositivo abcd, è possibile eseguire il comando dell'emulatore:

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

Oppure, quando si utilizza QEMU:

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

Avrai bisogno delle autorizzazioni di lettura/scrittura per /dev/bus/usb/XXX/YYY, per questo puoi creare una regola udev come:

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

Ora, al momento dell'inserimento del dispositivo USB, l'emulatore dovrebbe riconoscere un dispositivo USB. Questo è testato per un'installazione Linux con Android x86 4.3 immagine.

+0

il comando 'qemu-system-x86_64 -device help' elenca i nomi di tutti i possibili dispositivi virtuali; mentre li carico allo stesso modo '-usb -readconfig .android/avd/intel-pch-xhci.cfg'. –

+1

Penso che sarebbe bene chiarire che l'opzione host -usbdevice è solo Linux. fonte: - https://qemu.weilnetz.de/doc/qemu-doc.html - 2.3.3 Opzioni USB – Tom

+0

@Tom La funzionalità dell'host USB dipende da [libusb] (http://libusb.info/) che è supportato anche su Windows. In passato QEMU aveva una dipendenza Linux, ma era stata cambiata in QEMU 1.5 con [questo commit] (https://git.qemu.org/?p=qemu.git;a=commit;h=2b2325ff6491224a42e1fec99b1c39fbc521c95c) ([changelog ] (https://wiki.qemu.org/index.php/ChangeLog/1.5#USB)). Penso che la documentazione sia obsoleta. – Lekensteyn

0

Installato ospite Android in virtualbox con host Windows 7 utilizzando immagine android-x86-4.0-r1-eeepc.iso da here (perché il bios bloccato della mia azienda e non ho potuto abilitare l'emulazione vt-x che ho dovuto installare una versione precedente alla 4.4). Quindi collegato un'unità USB, aperto VM - Impostazioni - USB in Virtualbox Manager, facendo clic sulla seconda icona a destra con un segno più su di esso, ha scelto l'unità USB. Virtualbox ha quindi installato il driver per l'unità USB. Al termine, avvii l'Android VM. Avviato OpenManager, è andato su mnt/USB, e file del drive USB erano lì!

Problemi correlati