step Counter Listener
Listener para eventos del sensor contador de pasos.
Este SensorEventListener está diseñado específicamente para el sensor Sensor.TYPE_STEP_COUNTER. Se encarga de recibir actualizaciones de pasos y cambios en la precisión del sensor.
Responsabilidades:
Recepción de Datos de Pasos: Captura el número total de pasos desde el último reinicio del dispositivo cuando
onSensorChangedes invocado con un eventoSensor.TYPE_STEP_COUNTER.Validación de Precisión: Antes de procesar los datos de pasos, verifica que la precisión del evento (
event.accuracy) sea al menosSensorManager.SENSOR_STATUS_ACCURACY_MEDIUM. Las lecturas con precisión baja o no confiable son ignoradas para asegurar la calidad de los datos.Manejo de Cambios de Precisión: El método
onAccuracyChangedregistra cualquier cambio en la precisión del sensor. Advierte si la precisión se degrada aSensorManager.SENSOR_STATUS_UNRELIABLE.Delegación de Procesamiento: Una vez que una lectura de pasos es considerada válida (precisión aceptable), delega el valor bruto de pasos a la función
handleStepCounterDatapara su procesamiento posterior (cálculo de pasos de sesión, manejo de reinicios del sensor, etc.).Sincronización: Utiliza
synchronized(dataProcessingLock)para asegurar que el procesamiento de eventos del sensor se realice de forma secuencial y segura en entornos multihilo.
Flujo en onSensorChanged:
Sincronizar el acceso.
Verificar si el evento es de
Sensor.TYPE_STEP_COUNTER.Validar Precisión:
Si
event.accuracy >= SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM: