45 votes

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

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

38voto

Owen Fraser-Green Points 642

L'émulateur Android ne le prend pas en charge lui-même, mais l'outil OpenIntents SensorSimulator 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 en utilisant l'outil adb qui est fourni avec le SDK :

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

(courir dispositifs 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é 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, qui doit donc toujours être valide.

3 votes

J'ai fait tout cela, et lorsque j'essaie de contrôler l'accéléromètre de mon simulateur avec SensorSimulator, rien ne se passe.

0 votes

Lien fonctionnel pour télécharger le fichier zip aquí mais comme cela fait des années qu'il n'y a pas eu d'engagement, je ne recommanderais pas d'essayer.

19voto

user1302884 Points 177

La version récente de l'émulateur est dotée d'un support pour la simulation de l'accéléromètre et d'autres capteurs. On peut telnet localhost 5554 :

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

capteur
vous permet de demander aux capteurs de l'émulateur

les sous-commandes disponibles :
status liste tous les capteurs et leur état.
obtenir les valeurs du capteur
set set valeurs du capteur

KO : sous-commande manquante

statut du capteur
accélération : activé.
champ magnétique : activé.
orientation : activée.
température : activé.
proximité : activé.
OK

Comment simuler exactement 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

0 votes

Est-ce que "adb shell dumpsys sensorservice <>" peut être utilisé pour la simulation ?

6voto

Bryan Points 71

J'ai également essayé de faire fonctionner le SensorSimulator et je pense que j'ai finalement réussi à le faire fonctionner.

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

Ensuite, installez SensorSimulatorSettings sur l'émulateur en utilisant l'outil adb qui est 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.

Il semble que vous deviez ensuite modifier votre application pour utiliser le SensorSimulator. Vous pouvez aller sur http://code.google.com/p/openintents/wiki/SensorSimulator et faites défiler la page jusqu'à la section "Comment utiliser le SensorSimulator dans votre application".

Même à ce moment-là, j'ai eu quelques erreurs de compilation, donc vous voudrez peut-être voir cette page : Composant thermomètre vintage + SensorSimulator sur l'émulateur Android - J'ai dû supprimer les références à Android.hardware.Sensor, SensorEvent et SensorEventListener.

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

Après tout cela, je suis capable d'utiliser le SensorSimulator pour faire tourner virtuellement mon téléphone et j'obtiens les relevés de capteur correspondants dans mon application.

1voto

usman Points 546

J'ai fait l'expérience que l'émulateur pour la cible 10 ne supporte pas l'accéléromètre mais pour la cible 15 il le fait. Je ne sais pas s'il y a 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.

0voto

Vous pouvez essayer mon émulation de capteur Android hébergée à l'adresse suivante https://code.google.com/p/Android-sensor-emulation/ fonctionnalité, si cela vous intéresse.

Pour utiliser mon travail, vous n'avez pas besoin de modifier votre application du tout. Il suffit de faire tourner sur l'émulateur la même application que celle développée pour le vrai appareil Android (téléphone, etc.).

Il a été vérifié pour Android-x86 mais ne dépend pas vraiment de x86 en tant que tel. Le même code devrait donc fonctionner pour Android basé sur ARM.

Au total, dix capteurs sont émulés à distance (sans fil) en temps réel (avec un délai quasi nul).

Vous devez disposer d'un véritable appareil Android (téléphone, etc.) avec lequel vous pouvez envoyer les relevés de ses capteurs matériels réels à l'émulateur. Par la suite, toute application Android pourra utiliser ces relevés comme elle le ferait sur un véritable appareil Android (téléphone, etc.).

Les dix capteurs émulés sont : 1) Accéléromètre 2) Magnétomètre 3) Lumière 4) Proximité 5) Gyroscope 6) Gyroscope corrigé 7) Accélération linéaire 8) Orientation 9) Gravité 10) Vecteur de rotation.

N'hésitez pas à poser toutes vos questions sur l'utilisation, etc. Et faites-moi part de vos réactions.

Cheers

PS : Je ne cherche pas à faire de la publicité pour mon travail mais à aider les personnes intéressées par mon travail !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X