2011-10-24 16 views
26

Szukaliśmy systemu Android 3.1+ i jego możliwości odczytu/zapisu na urządzeniach USB podłączonych do portu OTG/Host.Podłącz urządzenie USB do emulatora Androida?

Znalazłem kilka przykładów kodu, które pozwalają mi wykryć i odczytać/zapisać na urządzeniu USB HID, ale w tej chwili po prostu nie mam fizycznego urządzenia kompatybilnego z 3.1+, aby wdrożyć i zdalnie debugować.

Czy ktoś wie, w jaki sposób mogę podłączyć moje urządzenie HID do emulatora, poprzez PC/Eclipse, aby aplikacja mogła wykryć i odczytać/zapisać do/z urządzenia?

Próbowałem wypróbować listę aktualnie podłączonych urządzeń USB, ale nie pokazuje żadnych, jak można się domyślać.

Wszelkie pomysły?

Pozdrowienia

Odpowiedz

6

AFAIK to nie jest możliwe. Emulatory Androida nie emulują wielu rzeczy, które istnieją w prawdziwych urządzeniach ... ale to przypomina mi attempt to run ADB over Bluetooth.

To nie jest bezpośrednia pozytywna odpowiedź na twoje pytanie, ale być może pomoże ci znaleźć obejście tak, jak ja: zainstaluj "emulator" na fizycznym netbooku x86 (podwójny rozruch) i użyj linków, o których mowa w my posts, aby osiągnąć to, co próbujesz zrobić przez WiFi lub Bluetooth.

Mam nadzieję, że to pomoże.

+0

Oczywiście, że jest to możliwe. – rolls

1

Tworzenie Android Virtual Machine na VirtualBox lub odtwarzacza vm z tym image

connect USB i podłączyć z Eclipse przy użyciu adb connect (ur IP urządzenia)

enter image description here

7

Android emulator oparty jest na QEMU . Nawet jeśli wersja emulatora jest tak stara, wydaje się, że istnieje wsparcie dla przekazywania urządzeń USB z hosta. Wydaje się jednak, że nie jest on dostępny dla urządzeń ARM, ale emulowane urządzenie ARM nie ma kontrolera USB. (Już próbowałem włączyć wszystkie kontrolery hosta USB dla jądra goldfish_armv7 opartego na Linuxie 3.4 bez powodzenia Domyślny emulator goldfish_armv7 jądro nie ma nawet włączonego hosta USB.)

Jeśli nie jesteś ograniczony do ARM i możesz użyć x86, a następnie sugeruję, aby sprawdzić http://www.android-x86.org/, jego obrazy mogą być używane ze standardową maszynąi386 (lub x86_64). Zapewnia to również lepszą wydajność przy użyciu rozszerzenia KVM pod numerem Linux.

Aby Passthrough urządzenia USB z od dostawcy ID 1234 ID i urządzenie abcd, można uruchomić komendę emulatora:

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

Lub, jeżeli używany QEMU:

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

Będziesz potrzebować uprawnień do odczytu/zapisu dla /dev/bus/usb/XXX/YYY, ponieważ możesz utworzyć regułę udev, taką jak:

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

Teraz, po podłączeniu urządzenia USB, emulator powinien rozpoznać urządzenie USB. Zostało to przetestowane pod kątem instalacji systemu Linux z systemem Android x86 4.3 obraz.

+0

polecenie 'qemu-system-x86_64 -desvice help' wyświetla nazwy wszystkich możliwych urządzeń wirtualnych; podczas gdy ja ładuję je podobnie '-usb -readconfig .android/avd/intel-pch-xhci.cfg'. –

+1

Myślę, że dobrze byłoby wyjaśnić, że opcja -usbdevice host jest tylko Linux. źródło: - https://qemu.weilnetz.de/doc/qemu-doc.html - 2.3.3 Opcje USB – Tom

+0

@Tom Funkcja hosta USB zależy od [libusb] (http://libusb.info/), która jest również obsługiwane w systemie Windows. W przeszłości QEMU posiadało zależność od systemu Linux, ale zostało to zmienione w QEMU 1.5 z [tym zatwierdzeniem] (https://git.qemu.org/?p=qemu.git;a=commit;h=2b2325ff6491224a42e1fec99b1c39fbc521c95c) ([changelog ] (https://wiki.qemu.org/index.php/ChangeLog/1.5#USB)). Myślę, że dokumentacja jest po prostu przestarzała. – Lekensteyn

0

Zainstalowano gościa Androida w VirtualBoxie z hostem Windows 7 przy użyciu obrazu android-x86-4.0-r1-eeepc.iso z here (ponieważ komputer mojej firmy zablokował bios i nie mogłem włączyć emulacji vt-x, którą musiałem zainstalować wersja wcześniejsza niż 4.4). Następnie włożyłem napęd USB, otworzyłem VM - Ustawienia - USB w Virtualbox Managerze, kliknąłem na drugą ikonę po prawej z plusem na nim, wybrałem napęd USB. Virtualbox następnie zainstalował sterownik dla dysku USB. Po jej zakończeniu uruchom android VM. Uruchomiłem OpenManager, przeszedłem do mnt/USB, a pliki na dysku USB były tam!

Powiązane problemy