J'ai un service de premier plan qui doit obtenir une mise à jour d'emplacement unique.Le service de premier plan ne reçoit pas les mises à jour d'emplacement en mode Doze sous Android O
Il est lancé par une diffusion spécifique, et au démarrage, il fait simplement une demande sur notre backend. Quand il reçoit une autre diffusion, il demande une mise à jour de l'emplacement (une fois), fait une autre requête backend et s'arrête ensuite. Edit: pour clarifier, le service effectue lui-même les mises à jour de localisation et les requêtes backend. Il est indépendant de l'application principale à cet égard.
Cela fonctionne bien sur Lollipop et Marshmallow, à la fois lorsque le téléphone est éveillé ou en mode Doze. Mais pour une raison quelconque, sur Android O le service ne reçoit jamais de mises à jour de localisation en mode Doze. Le réseautage fonctionne bien à mesure que sa première demande se réalise dans les deux situations. De plus, si je réveille le téléphone pendant que l'emplacement le demande, il recevra la mise à jour. Pareil si je le mets dans la fenêtre de maintenance.
Android O introduit certaines limitations sur background location mais comme la page le mentionne, le comportement de l'application de premier plan (application visible ou service de premier plan en cours d'exécution) doit être préservé et être similaire aux versions précédentes d'Android.
Est-ce un problème dans l'aperçu du développeur ou une restriction que j'ai raté?
Juste pour clarifier, sont à la fois la demande demande du réseau et la mise à jour de localisation étant fait du service? – Noel
@Noel yep. Il est indépendant de l'application – Jukurrpa