satelite para google cómo cuanto como celular cada actualizar actualiza android location android-6.0-marshmallow android-doze-and-standby

android - para - ¿Cómo afecta la función Doze/Standby a las actualizaciones de ubicación?



como se actualiza google maps (3)

En mi experiencia, las actualizaciones de ubicación aún se reciben cuando está en Doze pero solo cuando usa una notificación de primer plano junto con los métodos que describió. Las llamadas de red no funcionan.

Tenga en cuenta que algunas publicaciones de stackoverflow indican que solo debe usar el permiso REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. Su aplicación será rechazada en Play Store cuando defina este permiso en su manifiesto debido al "abuso de dispositivo y red" https://play.google.com/about/privacy-security/device-network-abuse/ .

También hay una forma de solicitar manualmente este permiso con una intención. No sé si también está prohibido de esa manera. Todo el principio de la lista blanca es un poco vago para mí.

¿Alguien sabe si una aplicación incluida en la lista blanca que tiene un bloqueo de activación parcial puede recibir actualizaciones de ubicación mientras el dispositivo está en Doze o la aplicación está en Espera?

Los documentos de Android ( http://developer.android.com/training/monitoring-device-state/doze-standby.html ) solo indican que la CPU y la red están diferidas y no mencionan ningún efecto en las actualizaciones de ubicación (es decir, desde el LocationManager ). Sobre esta base, parece que las actualizaciones de ubicación no se ven afectadas por Doze / Standby, por lo que si una aplicación tiene un bloqueo de activación parcial (para mantener la CPU en funcionamiento), la aplicación debería poder recibir actualizaciones de ubicación.

Implementé esto, lo probé y descubrí que una aplicación no parece recibir actualizaciones de ubicación en Doze, a pesar de que tiene un bloqueo de activación parcial y está en la lista blanca. Curiosamente, cuando dejé el dispositivo en mi escritorio durante la noche ejecutando la aplicación con el bloqueo de vigilia, la batería estaba casi vacía por la mañana, pero al repetir con la aplicación sin el bloqueo de activación, la batería estaba casi llena por la mañana. Entonces, parece que la aplicación se estaba ejecutando todo el tiempo, pero no estaba recibiendo actualizaciones de ubicación.

Un poco de fondo adicional: la aplicación se utiliza para el seguimiento de flotas, por lo que estamos tratando de averiguar si existe alguna forma de que una aplicación tenga un servicio en segundo plano en ejecución que reciba actualizaciones de ubicación de manera confiable cuando se ejecuta con la batería.

¡Gracias! -Tumba.


Para obtener actualizaciones de ubicación cuando el teléfono está en modo inactivo, la aplicación debe estar en la lista blanca, tener un despertador parcial y no debe estar en la misma ubicación (si está en la misma ubicación no necesita actualizaciones). Probé esto con Mock Locations, que estaba dando una ubicación falsa mientras el teléfono estaba en mi escritorio.


Sí, esta parece ser otra restricción no documentada en el modo Doze, como también se muestran en mis registros de prueba . Supongo que algunas funciones de hardware como el GPS generalmente están desactivadas en Doze, pero tal vez sea el LocationManager el que está deshabilitado por completo.

Como esto podría ser simplemente una falta severa de documentación, el consumo de batería que mencionas definitivamente no debería ocurrir en Doze, ya que eso es exactamente lo que Doze quiere prevenir en primer lugar.

Es posible que desee presentar un informe de errores sobre todo esto en https://code.google.com/p/android/issues/list