Pour accéder aux API optimisées par les services Google Play dans votre application Android, vous devez utiliser des objets client API. Ces objets gèrent la connexion aux services Google Play, mettent en file d'attente les requêtes et les exécutent dans l'ordre lorsqu'une connexion est disponible. Vous pouvez créer des clients d'API selon vos besoins, car leur création est peu coûteuse.
Commencer
Avant de commencer, assurez-vous de configurer les services Google Play dans le projet de votre application.
Pour accéder à un service qui ne nécessite pas d'autorisation, créez une instance de l'objet client du service en transmettant un objet Context
ou Activity
. Si nécessaire, les utilisateurs sont invités à mettre à niveau les services Google Play avant l'exécution des appels d'API.
L'extrait de code suivant montre comment obtenir la dernière position connue de l'appareil à l'aide du Fused Location Provider :
Kotlin
// Code required for requesting location permissions omitted for brevity. val client = LocationServices.getFusedLocationProviderClient(this) // Get the last known location. In some rare situations, this can be null. client.lastLocation.addOnSuccessListener { location : Location? -> location?.let { // Logic to handle location object. } }
Java
// Code required for requesting location permissions omitted for brevity. FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient(this); // Get the last known location. In some rare situations, this can be null. client.getLastLocation() .addOnSuccessListener(this, location -> { if (location != null) { // Logic to handle location object. } });
Pour accéder aux API qui nécessitent l'autorisation de l'utilisateur, suivez le guide Autoriser l'accès aux données utilisateur Google.
Si vous utilisez une API qui nécessite un objet GoogleSignInAccount
, utilisez la méthode AuthorizationResult#toGoogleSignInAccount()
.
Vérifier la disponibilité de l'API
Avant d'activer une fonctionnalité qui dépend d'une API des services Google Play, vérifiez si l'API est disponible sur l'appareil en appelant checkApiAvailability()
.
L'extrait de code suivant montre comment vérifier si le fournisseur de localisation combinée est disponible :
Kotlin
fun getLastLocationIfApiAvailable(context: Context?): Task<Location>? { val client = getFusedLocationProviderClient(context) return GoogleApiAvailability.getInstance() .checkApiAvailability(client) .onSuccessTask { _ -> client.lastLocation } .addOnFailureListener { _ -> Log.d(TAG, "Location unavailable.")} }
Java
public Task<Location> getLastLocationIfApiAvailable(Context context) { FusedLocationProviderClient client = getFusedLocationProviderClient(context); return GoogleApiAvailability.getInstance() .checkApiAvailability(client) .onSuccessTask(unused -> client.getLastLocation()) .addOnFailureListener(e -> Log.d(TAG, "Location unavailable.")); }