Aller au contenu
Narvy

Le geofencing n'est plus accepté dans un service de premier plan sur Google Play

Google Play retire le geofencing (déclencher une action quand l'utilisateur entre dans une zone ou en sort) des usages autorisés d'un service de premier plan. Les applications qui gardent un service de premier plan de localisation actif pour surveiller des zones doivent enregistrer des zones avec l'API Geofence et mettre à jour leur déclaration des services de premier plan dans la Play Console.

Ce que cela signifie

We're removing geofencing as an approved foreground services use case. Developers can instead use the Geofence API for this use case.

Play Console Help, foreground service requirements (preview)

Depuis Android 10, un service de premier plan qui lit la position déclare android:foregroundServiceType="location". Le contrôle liste ces services. Ce que fait chacun (navigation, suivi d'activité ou geofencing) ne figure pas dans le binaire : le résultat est donc non déterminé, avec la liste des services à examiner.

Échéance

À partir du 27 janvier 2027, selon le calendrier des règles Google Play. Le contrôle applique la règle à partir de cette date ; avant, le résultat est intitulé « Exigé à partir du » cette date. Il n'est jamais bloquant : ce qu'exige Google ne figure pas dans le binaire.

Corriger

1. Identifier l'usage du service de localisation

Examinez chaque service listé par le contrôle. S'il ne fait qu'attendre l'entrée ou la sortie de l'utilisateur d'une zone, il est concerné par ce changement.

2. Enregistrer des zones à la place

Kotlin (services de localisation Google Play)
val geofence = Geofence.Builder()
    .setRequestId("store-42")
    .setCircularRegion(lat, lng, 150f)
    .setExpirationDuration(Geofence.NEVER_EXPIRE)
    .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER)
    .build()

LocationServices.getGeofencingClient(context).addGeofences(
    GeofencingRequest.Builder().addGeofence(geofence).build(),
    geofencePendingIntent
)

3. Mettre à jour la déclaration dans la Play Console

Retirez le geofencing de la déclaration des services de premier plan, ou retirez le type location si le service n'en a plus besoin.

Vérifier avant de soumettre

Déposez l'APK, AAB ou lot d'APK fractionnés (XAPK, APKS, APKM) sur la page de contrôle des stores. Elle exécute PLAY-FGS-GEOFENCING avec les dates de cette page, puis supprime le fichier : rien de l'application n'est conservé.

Contrôler un build dans le navigateur

Questions fréquentes

Mon service de localisation sert à la navigation guidée. Est-il concerné ?

Non. Seul le geofencing perd son autorisation. Le contrôle ne peut pas distinguer les deux, c'est pourquoi il indique un résultat non déterminé plutôt qu'un échec.

Le service de localisation vient d'une bibliothèque. Que faire ?

Vérifiez à quoi la bibliothèque l'utilise. Si l'application ne le lance jamais, retirez le service du manifeste fusionné avec tools:node="remove" ; la déclaration des services de premier plan couvre tous les types contenus dans le build envoyé.