Utilisation du module de localisation Pushwoosh dans les applications Android
Il existe deux catégories d’accès à la localisation dans Android :
- Accès à la localisation au premier plan
- Accès à la localisation en arrière-plan
Pour mettre à jour la position de l’utilisateur au premier plan, l’une des conditions suivantes doit être remplie :
- L’une des activités de l’application est active
- Un service de premier plan de type foregroundServiceType = “location” est lancé pour l’application
L’accès en arrière-plan permet à l’application d’obtenir la géolocalisation de l’utilisateur lorsque l’application est inactive et qu’aucun service de premier plan de type “location” n’est lancé pour cette application.
Accès à la localisation au premier plan
Anchor link toSi vous prévoyez d’utiliser le module de localisation Pushwoosh pour mettre à jour la position de l’utilisateur uniquement lorsque votre application est active, ajoutez le module pushwoosh-location
à votre fichier app/build.gradle :
implementation 'com.pushwoosh:pushwoosh-location:6.+'
Pour lancer le module, utilisez la méthode startLocationTracking
:
PushwooshLocation.startLocationTracking();
PushwooshLocation.startLocationTracking()
Utilisation de ForegroundService pour effectuer des requêtes de localisation lorsque votre application est en arrière-plan
Anchor link toPour lancer le ForegroundService lorsque la méthode startLocationTracking
est appelée, ce qui permet d’obtenir la géolocalisation de l’utilisateur lorsque votre application est en arrière-plan, suivez les étapes décrites dans le paragraphe précédent, puis ajoutez les méta-données suivantes à votre fichier AndroidManifest.xml :
...<application>.... <meta-data android:name="com.pushwoosh.start_foreground_service" android:value="true" />...</application>...
Lorsque ForegroundService est lancé, une notification est créée. Vous pouvez personnaliser la notification en spécifiant les méta-données supplémentaires dans le fichier AndroidManifest.xml de votre projet :
...<application>.... <meta-data android:name="com.pushwoosh.foreground_service_notification_text" android:value="My notification text" /> <meta-data android:name="com.pushwoosh.foreground_service_notification_channel_name" android:value="My notification channel name" />...</application>...
Accès à la localisation en arrière-plan
Anchor link toPour mettre à jour la géolocalisation en arrière-plan sans lancer de ForegroundService, vous aurez besoin des éléments suivants :
- Obtenir l’approbation de Google Play pour l’accès de votre application à la localisation en arrière-plan (consultez https://support.google.com/googleplay/android-developer/answer/9799150?hl=en pour plus de détails)
- Ajouter l’autorisation à votre AndroidManifest.xml :
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
- Demander à l’utilisateur l’autorisation de mettre à jour la localisation en arrière-plan après avoir reçu l’autorisation de localisation au premier plan (retrouvez les directives dans la documentation pour développeurs Android : https://developer.android.com/training/location/permissions#background-dialog-target-android-11 )
Dans la version 6.3.2 du module pushwoosh-location
, nous avons inclus une méthode supplémentaire qui ouvre l’écran des paramètres d’autorisation de localisation si les conditions suivantes sont remplies :
- L’autorisation de localisation au premier plan est accordée à l’application ;
- L’autorisation utilisateur
ACCESS_BACKGROUND_LOCATION
est présente dans le fichier AndroidManifest.xml de l’application.
Appelez la méthode comme suit :
PushwooshLocation.requestBackgroundLocationPermission();
PushwooshLocation.requestBackgroundLocationPermission()
Types d’autorisation sous Android 12+
Anchor link toÀ partir d’Android 12, lorsqu’on lui demande l’autorisation d’accès à la localisation au premier plan, un utilisateur peut choisir la fréquence et la précision avec lesquelles l’application obtiendra sa position.
Il existe deux types de ces autorisations :
- Localisation approximative, qui équivaut à ACCESS_COARSE_LOCATION
- Localisation précise, qui équivaut à ACCESS_FINE_LOCATION et ACCESS_COARSE_LOCATION
Partagez vos commentaires avec nous
Anchor link toVos commentaires nous aident à créer une meilleure expérience, nous serions donc ravis de connaître votre avis si vous rencontrez des problèmes lors du processus d’intégration du SDK. Si vous rencontrez des difficultés, n’hésitez pas à nous faire part de vos réflexions via ce formulaire.