Depuis android 4.4 tu as 2 sensor dédié à cet effet :
https://developer.android.com/about/...html#UserInput
TYPE_STEP_DETECTOR va te retourner 1 et un timestamp à chaque pas alors que TYPE_STEP_COUNTER va retourner un total.
J'imagine que ces sensor on l'avantage d'aller chercher directement l'info sur les podomètres intégrés dans les appareils qui en dispose (bien plus précis et moins energivore).
Exemple rapide :
Récupérer le sensor
1 2
| sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
stepDetectorSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR); |
Ecrire un listener
1 2 3 4 5 6 7 8 9 10 11 12 13
| public void onSensorChanged(SensorEvent event) {
Sensor sensor = event.sensor;
float[] values = event.values;
int value = -1;
if (values.length > 0) {
value = (int) values[0];
}
if (sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
Log.d("STEP","Value = "+value);
}
} |
S'abonnner au listener (onResume par exemple)
sensorManager.registerListener(this, stepDetectorSensor,SensorManager.SENSOR_DELAY_FASTEST);
Se désabonner (onStop par exemple)
sensorManager.unregisterListener(this, stepDetectorSensor);
Partager