Accesso alle API di Google

Per accedere alle API basate su Google Play Services nella tua app per Android, devi utilizzare oggetti client API. Questi oggetti gestiscono la connessione a Google Play Services, inseriscono le richieste in coda ed eseguono le richieste in ordine quando è disponibile una connessione. Puoi creare nuovi client API in base alle tue esigenze, poiché la loro creazione è economica.

Inizia

Prima di iniziare, assicurati di configurare Google Play Services nel progetto dell'app.

Per accedere a un servizio che non richiede l'autorizzazione, crea un'istanza dell'oggetto client del servizio passando un oggetto Context o Activity. Se necessario, agli utenti viene chiesto di eseguire l'upgrade di Google Play Services prima che vengano eseguite eventuali chiamate API.

Il seguente snippet di codice mostra come recuperare l'ultima posizione nota del dispositivo utilizzando il fornitore di posizione combinato:

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.
            }
        });

Per accedere alle API che richiedono l'autorizzazione dell'utente, segui la guida per autorizzare l'accesso ai dati utente di Google. Se utilizzi un'API che richiede un oggetto GoogleSignInAccount, utilizza il metodo AuthorizationResult#toGoogleSignInAccount().

Verificare la disponibilità dell'API

Prima di attivare una funzionalità che dipende da un'API Google Play Services, controlla se l'API è disponibile sul dispositivo chiamando checkApiAvailability().

Il seguente snippet di codice mostra come verificare se il fornitore di servizi di geolocalizzazione combinati è disponibile:

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."));
}