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’accordcapteur
vous permet de demander les capteurs d’émulateurSous-commandes disponibles:
état liste tous les capteurs et leur statut.
obtenir des valeurs de capteur
définir les valeurs de capteurKO: 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