¿Cómo evito que mi aplicación de seguimiento por GPS se detenga?

Estoy ejecutando un rastreador GPS de Android de código abierto muy simple:

https://github.com/herverenault/Self-Hosted-GPS-Tracker

Lo tengo configurado para publicar coordenadas GPS desde mi teléfono a mi servidor cada 30 segundos. El problema es: a veces funciona, y a veces duerme durante 3 u 8 minutos, o a veces parece que se detiene por completo.

¿Qué podría estar causando esto y hay alguna forma de evitar que suceda?

Esta no es una aplicación "secreta" o maliciosa de ninguna manera; la persona que lo ejecuta sabe que lo está ejecutando. Simplemente no quiero que el usuario vuelva a iniciar la aplicación cada 5 minutos, o incluso cada vez que reinicie su dispositivo (que el código dice que ya es compatible).

Estoy usando esto en varios dispositivos, pero mi teléfono principal es un Galaxy S5 con 6.0.1

Respuestas (1)

El sistema operativo Android intenta intencionalmente evitar que se ejecuten aplicaciones como esta para evitar que se agote la batería. Específicamente para Android 6, debe conocer las funciones de reposo y espera de la aplicación . Doze evita que las aplicaciones se ejecuten cuando el dispositivo no está en uso. El modo de espera de la aplicación difiere la actividad de la red para las aplicaciones que se usan con poca frecuencia. Es probable que ambos afecten su uso.

La ejecución de GPS (GPS real, no solo servicios de ubicación) es una gran pérdida de energía.

Si no te importa el poder, puedes probar:

  1. Mantenga el dispositivo encendido con su aplicación en primer plano.
  2. Incluya su aplicación en la lista blanca para dormir y la aplicación en espera (consulte el enlace anterior).
Estoy familiarizado con estos, y sé que el GPS es uno de los mayores (si no el) mayor consumo de batería. Dicho esto, todavía quiero que mi rastreador publique actualizaciones de todos modos . ¿No hay forma de forzar este comportamiento de "permanecer en ejecución" en Android?