web-dev-qa-db-fra.com

Comment puis-je simuler un accéléromètre dans un émulateur Android?

Je n'ai pas de téléphone Android pour le moment. Mais dans mon application, je dois utiliser les valeurs de l'accéléromètre. Comment puis-je faire cela dans un environnement simulé?

42
sruthi

L'émulateur Android ne le prend pas en charge mais OpenIntents ' SensorSimulator remplit le vide. Téléchargez et décompressez le fichier Zip, puis démarrez le fichier jar autonome:

$ Java -jar bin/sensorsimulator.jar

Ensuite, installez SensorSimulatorSettings sur l'émulateur à l'aide de l'outil adb fourni avec le SDK:

$ adb -s <emulator device> install bin/SensorSimulatorSettings.apk

(exécutez périphériques adb} pour trouver le nom du périphérique de l'émulateur). Enfin, exécutez l'application SensorSimulatorSettings installée dans l'émulateur et entrez l'adresse IP 10.0.2.2 (malgré les suggestions de l'application SensorSimulator. Il s'agit d'un alias du périphérique de bouclage de l'hôte de développement qui doit donc toujours être valide.

38
Owen Fraser-Green

La version récente de l'émulateur est activée avec l'accéléromètre et d'autres simulations de capteurs. On peut telnet localhost 5554:

Essayer 127.0.0.1 ...
Connecté à localhost.
Le caractère d'échappement est '^]'.
Console Android: tapez 'help' pour obtenir une liste de commandes
D'accord 

capteur
vous permet de demander les capteurs d'émulateur

sous-commandes disponibles:
liste d'état tous les capteurs et leur statut.
obtenir les valeurs du capteur
définir les valeurs du capteur

KO: sous-commande manquante

état du capteur
accélération: activé.
champ magnétique: activé.
orientation: activé.
température: activé.
proximité: activé.
D'accord

Comment simuler exactement un shake, je ne sais pas. Essayez d’envoyer rapidement ces deux commandes l’une après l’autre:

sensor set acceleration 0:0:0
sensor set acceleration 99:99:99
17
user1302884

J'essayais également de faire fonctionner le SensorSimulator et je pense que je l'ai enfin fait fonctionner.

Les étapes ci-dessus: "... Java -jar bin/sensorsimulator.jar 

Ensuite, installez SensorSimulatorSettings sur l’émulateur à l’aide de l’outil adb fourni avec le SDK: $ Adb -s install bin/SensorSimulatorSettings.apk. 

... Enfin, exécutez l'application SensorSimulatorSettings installée dans l'émulateur et entrez l'adresse IP 10.0.2.2 ... "

sont un bon début, mais je devais faire plus.

Vous devez apparemment modifier votre application pour pouvoir utiliser SensorSimulator. Vous pouvez aller à http://code.google.com/p/openintents/wiki/SensorSimulator et faire défiler jusqu'à la section "Comment utiliser SensorSimulator dans votre application".

Même alors, j'ai eu quelques erreurs lors de la compilation. Vous voudrez peut-être voir cette page: Composant Vintage Thermometer + SensorSimulator sur l'émulateur Android - J'ai dû supprimer les références à Android.hardware.Sensor, SensorEvent et SensorEventListener.

Et ensuite, l'appel à connectSimulator a échoué. Apparemment, je devais donner à mon application la permission d'utiliser Internet dans le fichier manifeste.

Après tout cela, je peux utiliser le SensorSimulator pour faire pivoter virtuellement mon téléphone et obtenir les lectures de capteur correspondantes dans mon application.

6
Bryan

J'ai constaté que l'émulateur pour la cible 10 ne prend pas en charge l'accéléromètre, mais pour la cible 15, il le fait. Je ne sais pas s’il existe un moyen de le faire pour la cible 10 . Donc, pour tester votre application, créez votre projet et votre disque AVD pour la cible 15.

1
M. Usman Khan

Je vous suggère d'utiliser l'application Genymotion, qui intègre un outil complet pour le test d'accéléromètre et utilise un émulateur plus rapide: Genymotion

0
Nizar B.