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).
- ¿Qué pasos hay con respecto a las actividades de acondicionamiento físico?
- Obteniendo Google Fit Data en la aplicación Android
- Contador de pasos Google FIT API
- Cómo eliminar un permiso agregado debido a Google Fitness API 7.5.0
- El recuento de pasos recuperado a través de Google Fit Api no coincide con el recuento de pasos mostrado en la aplicación oficial de Google Fit
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?
- ¿Cómo obtener la fuente de datos para el recuento de pasos con la API de Google Fit para Android?
- Leer la altura de GoogleFit en Android
- Contador de pasos en Android: ¿siempre activado?
- ¿Eliminado Fitness.API en Google Play Services 7.0?
- Lista de comandos de voz que activan la comprobación del ritmo cardíaco
- Plugin de Android con Google Fitness API para Unity3D
- Obtenga la actividad actual de Google Fit API Android
- ¿Hay alguna manera de obtener actualizaciones de fondo de la API de Google Fit?
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".