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

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

L’émulateur Android ne le supporte pas lui-même, mais SensorSimulator d’ OpenIntents remplit le vide. Téléchargez et décompressez le fichier zip, puis lancez 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  install bin/SensorSimulatorSettings.apk 

(exécutez les périphériques adb pour trouver le nom de 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é ce que l’application SensorSimulator pourrait suggérer. Il s’agit d’un alias du périphérique de bouclage de l’hôte de développement. Il doit donc toujours être valide).

La version récente de l’émulateur est compatible avec l’accéléromètre et d’autres supports de simulation de capteurs. On peut telnet localhost 5554 :

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

capteur
vous permet de demander les capteurs d’émulateur

Sous-commandes disponibles:
état liste tous les capteurs et leur statut.
obtenir des valeurs de capteur
définir les valeurs de 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 exactement simuler une secousse, je ne sais pas. Essayez d’envoyer ces deux commandes l’une après l’autre rapidement:

 sensor set acceleration 0:0:0 sensor set acceleration 99:99:99 

J’essayais aussi de faire fonctionner SensorSimulator et je pense que j’ai enfin réussi.

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 utiliser SensorSimulator. Vous pouvez accéder à http://code.google.com/p/openintents/wiki/SensorSimulator et faire défiler la section jusqu’à la section “Comment utiliser SensorSimulator dans votre application”.

Même dans ce cas, j’ai eu quelques erreurs de compilation, alors vous pourriez vouloir 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 puis, il échouait à l’appel de connectSimulator. Apparemment, je devais autoriser mon application à 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.

J’ai constaté que l’émulateur de la cible 10 ne supportait pas l’accéléromètre, mais la cible 15. 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 AVD pour la cible 15.

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