web-dev-qa-db-fra.com

Connecter un périphérique USB à Android Emulator?

Nous nous sommes penchés sur Android 3.1+ et sa capacité à lire/écrire sur des périphériques USB connectés au port OTG/Host.

J'ai trouvé des exemples de code qui me permettent de détecter et de lire/écrire sur un périphérique USB HID, mais pour le moment, je n'ai tout simplement pas de périphérique physique compatible 3.1+ à déployer et à déboguer à distance.

Est-ce que quelqu'un sait comment je peux connecter mon périphérique HID à l'émulateur, via le PC/Eclipse afin que l'application puisse détecter et lire/écrire sur/depuis le périphérique?

J'ai essayé de lister les périphériques USB actuellement connectés, mais cela ne montre aucun résultat, comme vous le savez sans doute.

Des idées?

À votre santé

27
Gavin

L'émulateur Android est basé sur QEMU. Même si la version de l'émulateur est si ancienne, il semble y avoir un support pour passer des périphériques USB à partir de l'hôte. Il ne semble pas être disponible pour les périphériques ARM, cependant, la machine émulée ARM ne possède pas de contrôleur USB. (J'ai déjà essayé d'activer tous les contrôleurs hôtes USB pour le noyau goldfish_armv7 basé sur Linux 3.4, sans succès. L'émulateur par défaut du noyau goldfish_armv7 n'a même pas l'hôte USB activé.)

Si vous n'êtes pas limité à ARM et pouvez utiliser x86, je suggère de consulter http://www.Android-x86.org/ , ses images peuvent être utilisées avec un standard . QEMU i386 (ou x86_64). Cela donne également de meilleures performances en utilisant l’extension KVM sur Linux.

Pour passer un périphérique USB avec l'ID de fournisseur 1234 et l'ID de périphérique abcd, vous pouvez exécuter la commande emulator

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

Ou, lorsque vous utilisez QEMU:

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

Vous aurez besoin d'autorisations de lecture/écriture pour /dev/bus/usb/XXX/YYY, pour cela vous pouvez créer une règle udev telle que:

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

Désormais, lors de l’insertion du périphérique USB, votre émulateur doit reconnaître un périphérique USB. Ceci est testé pour une installation Linux avec une image Android x86 4.3.

10
Lekensteyn

Autant que je sache, ce n'est pas possible. Les émulateurs Android n'émulent pas beaucoup de choses qui existent dans les appareils réels ... mais cela me rappelle une tentative d'exécution d'ADB par Bluetooth .

Ce n’est pas une réponse positive directe à votre question, mais cela peut peut-être vous aider à trouver une solution de contournement: installez un "émulateur" sur un netbook physique x86 (dual-boot) et utilisez les liens mentionnés dans my messages pour accomplir ce que vous essayez de faire via WiFi ou Bluetooth.

J'espère que cela t'aides.

8
an00b

Créez une machine virtuelle Android sur virtualBox ou vm player avec cette image .

Connectez USB et connectez-vous à Eclipse en utilisant ADB connect (l'adresse IP de votre appareil).

enter image description here

2
Akilan

Invité Android installé dans la virtualbox avec Windows 7 Host à l'aide de l'image Android-x86-4.0-r1-eeepc.iso à partir de ici (parce que le bios de l'ordinateur de mon entreprise et que je ne pouvais pas activer l'émulation vt-x que je devais installer une version antérieure à 4.4). Puis connecté à un lecteur USB, ouvrez VM - Paramètres - USB dans Virtualbox Manager, cliquez sur la deuxième icône à droite avec le signe plus, choisissez le lecteur USB. Virtualbox a ensuite installé le pilote pour le lecteur USB. Une fois l’opération terminée, démarrez la machine virtuelle Android. A commencé OpenManager, est allé à mnt/USB et les fichiers du lecteur USB étaient là!

0
Silent Sojourner