Bonjour,
Je veux récupérer les données de l'accéléromètre et le gyromètre exactement au même moment. Avez-vous une aidé comment faire.
Merci.
A+
Bonjour,
Je veux récupérer les données de l'accéléromètre et le gyromètre exactement au même moment. Avez-vous une aidé comment faire.
Merci.
A+
Je ne pense pas que ce soit possible puisque les capteurs sous android fonctionne à base d'un listener.
C'est le sensor qui déclenche ton listener quand ses données ont changées et non pas toi qui l'intérroge à intervalle régulier.
Il me parrait donc difficile de synchroniser les deux capteurs.
En revanche tu peux conditionner l'utilisation des données reçues des 2 capteurs pour ne les utiliser que lorsque les deux ont des nouvelles valeurs
J'aurais envie de dire que c'est peut-être possible
Je n'ai pas mon code d'accéléromètre sous la main mais j'ai trouvé celui-ci.
http://mathias-seguy.developpez.com/...iser-capteurs/
On passe par un SensorEventListener.
Remarquez l'objet Sensor accelerometer.
Ensuite il récupère les valeurs x,y,z dans onSensorChanged (que ce soit l'accéleromètre ou le gyro).
Il faudrait tester
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 public class SensorAccelerationTutoActivity extends Activity implements SensorEventListener { // Déclaration de l'attribut en tant qu'attribut de l'activité // Le sensor manager (gestionnaire de capteurs) SensorManager sensorManager; // L'accéléromètre Sensor accelerometer; /***************************************************************************/ /** Manage life cycle ******************************************************/ /***************************************************************************/ // Appelé à la création de l'activité. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Faire quelque chose // Gérer les capteurs*: // Instancier le gestionnaire des capteurs, le SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); // Instancier l'accéléromètre accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); // Faire d'autres trucs } @Override protected void onPause() { // unregister the sensor (désenregistrer le capteur) sensorManager.unregisterListener(this, accelerometer); super.onPause(); } @Override protected void onResume() { /* Ce qu'en dit Google*dans le cas de l'accéléromètre : * «* Ce n'est pas nécessaire d'avoir les évènements des capteurs à un rythme trop rapide. * En utilisant un rythme moins rapide (SENSOR_DELAY_UI), nous obtenons un filtre * automatique de bas-niveau qui "extrait" la gravité de l'accélération. * Un autre bénéfice étant que l'on utilise moins d'énergie et de CPU.*» */ sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_UI); super.onResume(); } /********************************************************************/ /** SensorEventListener*************************************************/ /********************************************************************/ @Override public void onAccuracyChanged(Sensor sensor, intaccuracy) { // Rien à faire la plupart du temps } @Override public void onSensorChanged(SensorEvent event) { // Récupérer les valeurs du capteur floatx, y, z; if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { x = event.values[0]; y = event.values[1]; z = event.values[2]; } }
La ligne qui tue:
Pourquoi tester si c'est connu d'avance!
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
Si la réponse vous a aidé, pensez à cliquer sur +1
Ca parait effectivement compliqué mais peut-être que des librairies comme RxJava peuvent aider...
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager