it-swarm.com.de

USB-Gerät an Android-Emulator anschließen?

Wir haben Android 3.1 und seine Fähigkeit zum Lesen und Schreiben von USB-Geräten, die an den OTG/Host-Anschluss angeschlossen sind, geprüft.

Ich habe einige Codebeispiele gefunden, mit denen ich ein USB-HID-Gerät erkennen und lesen/schreiben kann, aber im Moment habe ich einfach kein physisch 3.1+ kompatibles Gerät zum Bereitstellen und Remote-Debugging.

Weiß jemand, wie ich mein HID-Gerät über den PC/Eclipse an den Emulator anschließen kann, damit die App das Gerät erkennen und lesen/schreiben kann?

Ich habe versucht, die derzeit angeschlossenen USB-Geräte aufzulisten, aber es zeigt keine, wie Sie zweifellos vermuten würden.

Irgendwelche Ideen?

Prost

27
Gavin

Der Android-Emulator basiert auf QEMU. Selbst wenn die Emulator-Version so alt ist, scheint das Weiterleiten von USB-Geräten vom Host zu unterstützen. Es scheint jedoch nicht für ARM -Geräte verfügbar zu sein, das emulierte ARM - Gerät hat keinen USB-Controller. (Ich habe bereits versucht, alle USB Host-Controller für den Goldfish_armv7-Kernel basierend auf Linux 3.4 ohne Erfolg zu aktivieren. Der Standard-Emulator Goldfish_armv7-Kernel hat nicht einmal Host USB aktiviert.)

Wenn Sie nicht auf ARM beschränkt sind und x86 verwenden können, dann schlage ich vor, http://www.Android-x86.org/ zu überprüfen, dessen Bilder mit einem Standard VERWENDET WERDEN KÖNNEN. QEMU i386 (oder x86_64) Maschine. Dies führt auch zu einer besseren Leistung, wenn die Erweiterung KVM unter Linux verwendet wird.

Um ein USB-Gerät mit der Hersteller-ID 1234 und der Geräte-ID abcd durchzuleiten, können Sie den Emulatorbefehl ausführen:

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

Oder, wenn Sie QEMU verwenden:

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

Sie benötigen Lese-/Schreibberechtigungen für /dev/bus/usb/XXX/YYY, damit Sie eine udev-Regel erstellen können, z.

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

Nach dem Einstecken des USB-Geräts sollte Ihr Emulator ein USB-Gerät erkennen. Dies wird für eine Linux-Installation mit einem Android x86 4.3-Image getestet.

10
Lekensteyn

AFAIK das ist nicht möglich. Android-Emulatoren emulieren nicht viele Dinge, die auf realen Geräten existieren ... aber dies erinnert mich an einen Versuch, ADB über Bluetooth auszuführen .

Dies ist keine direkte positive Antwort auf Ihre Frage, aber vielleicht hilft es Ihnen dabei, eine Problemumgehung zu finden: Installieren Sie einen "Emulator" auf einem physischen x86-Netbook (Dual-Boot) und verwenden Sie die Links, die in meine Beiträge um zu erreichen, was Sie über WLAN oder Bluetooth tun möchten.

Hoffe das hilft.

8
an00b

Erstellen Sie eine virtuelle Android-Maschine auf der virtualBox oder dem VM-Player mit diesem Bild .

Verbinden Sie USB und verbinden Sie sich mit Eclipse über ADB Connect (die IP Ihres Geräts).

enter image description here

2
Akilan

Android-Gast in Virtualbox mit Windows 7 Host mit Image Android-x86-4.0-r1-eeepc.iso von hier installiert (weil der Computer meines Unternehmens das BIOS gesperrt hat und ich die vt-x-Emulation nicht aktivieren konnte, die ich installieren musste eine Version vor 4.4). Dann ein USB-Laufwerk angeschlossen, VM - Einstellungen - USB in Virtualbox Manager geöffnet, auf das zweite Symbol rechts mit einem Pluszeichen geklickt und das USB-Laufwerk ausgewählt. Virtualbox installiert dann den Treiber für das USB-Laufwerk. Nachdem es fertig war, bootete die Android-VM. OpenManager wurde gestartet, ging zu mnt/USB und die Dateien des USB-Laufwerks waren da!

0