La mejor manera de obtener la cuenta de pasos diarios del usuario para enviar al servidor en segundo plano

Quiero enviar a mi servidor cada 24 horas cuántos pasos caminé. Tengo un AlarmManager para ir alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000*60*60*24, pendingIntent1)

Ahora esto es donde estoy atrapado … ¿cómo debo medir los pasos diarios? (Recuerde que tengo que enviar esto en segundo plano) Puedo utilizar este servicio que podría anular esta función public void onSensorChanged(SensorEvent event) T parece tan exacto ya que mi servicio podría ser destruido (y la batería se drenará muy rápido).

O

Puedo intentar usar Google Fitness pero necesito solicitar conexión del usuario cada vez que intento obtener los datos mGoogleApiClient.connect() (Necesito obtener estos datos en segundo plano)

¿Alguien tiene experiencia haciendo esto?

OnSensorChanged () funciona correctamente. Sensor debe ser lo suficientemente bueno en el dispositivo que no debe contar la vibración como un paso. Pero el único problema al capturar el recuento de pasos con onSencorChanged () es que si sacudimos el dispositivo lo contamos como un paso. Para evitar esto, la mayoría de las soluciones implementarán el seguimiento de la ubicación y el envío al backend para que el backend calcularía si el dispositivo se ha movido realmente. Envía el recuento de pasos real al dispositivo que se puede mostrar.

Dejando esto, para tu caso si piensas que el servicio-obtiene-destruido es tu preocupación, puedes reiniciarlo de una manera garantizada. Vea mi respuesta a No poder reiniciar el servicio . Esto explica cómo reiniciar el servicio con UncaughtExceptionHandler cuando se cancela la aplicación a través de tareas recientes o por el sistema en situaciones de poca memoria. Su servicio no se ejecuta en modo de suspensión profunda. Puede ejecutarlo usando WakefulBroadcastReceiver y startWakefulService () .

Usted debe reducir la frecuencia de envío de datos a backend a lo menos posible para evitar el drenaje de la batería.

No estoy seguro de la API de GoogleFit. Investigue sobre esto por sí mismo y puede agregar respuesta a su pregunta. D

ACTUALIZAR:
Buenos artículos sobre los sensores en android – Cómo los dispositivos Android hacer frente a la detección continua en modo de espera (pantalla apagada) y modo de suspensión .

Un buen punto a tener en cuenta:

"Suspender" es un modo de baja potencia donde el SoC (System on Chip) no está alimentado. El consumo de energía del dispositivo en este modo suele ser 100 veces menor que en el modo "On".

  • Cómo deshabilitar Google Fit y revocar permisos de la propia aplicación
  • Lectura de peso con Google Fit
  • ¿Cómo recuperar correctamente el nombre del paquete de la aplicación que inserta datos en Google Fit?
  • Tienes problemas para conectarte a Google Play Services; Obtener el código de estado Cancelado
  • Crear tablas de donuts Similar a Google Fit
  • Acceso a Android Wear Fit Data
  • API de Google Fit, obteniendo calorías por actividad
  • ¿Alguien ha sido capaz de obtener datos de los sensores de Moto 360 vía. Google Fit API?
  • Clase GoogleApiClient no encontrada
  • Obtener cubos más pequeños de GoogleFit no funciona
  • API de Google Fit: sin respuesta de devolución de llamada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.