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 les requêtes en file d'attente 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 votre projet d'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 d'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 une autorisation de l'utilisateur, suivez le guide pour 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 de 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 position fusionné 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.")); }