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).
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:
Bing