El contador de pasos no restablece el recuento de pasos

Puedo iniciar y detener los pasos de grabación con el Sensor.TYPE_STEP_COUNTER registrando y Sensor.TYPE_STEP_COUNTER registro del oyente.

Sin embargo, el valor real que se pasa a mi aplicación a través del objeto SensorEvent no se restablece a cero cuando se destruye la aplicación. Si cierra la aplicación y la reinicio, o incluso si recompilo mi aplicación con actualizaciones, el contador recoge donde lo dejó.

Si ejecuto otras aplicaciones que utilizan el sensor de contador de pasos, independientemente cuentan sus pasos y restablecen su contador.

¿Tiene el sensor un caché que es específico de la aplicación? ¿Cuál es la forma correcta de restablecer el sensor a cero pasos contados?

Desde Android Sensor API :

Public static final int TYPE_STEP_COUNTER

Un sensor de este tipo devuelve el número de pasos realizados por el usuario desde el último reinicio mientras estaba activado . El valor se devuelve como un flotador (con la parte fraccional puesta a cero) y se restablece a cero sólo en un reinicio del sistema .

(Énfasis mío)

Como puede ver, mientras el sensor está activado, el valor continuará aumentando sin restablecer a cero hasta que se reinicie el sistema.

Si desea contar desde 0 cada vez que se inicia la aplicación, puede almacenar el primer valor devuelto como valor inicial, y luego restar el valor posterior por él.

El método onSensorChanged del sensor sólo se llama cuando aparece un nuevo valor real, no se desencadena aleatoriamente con valores repetidos, por lo que si desea contar los pasos usted mismo, puede hacerlo.

He elegido colocar el valor pasos dentro de SharedPreferences, y cada vez que el método onSensorChanged se desencadena incremento el valor que tengo por 1, es fiable porque el método sensorChanged no desencadena para valores repetidos, esta solución funciona bien para mí

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.