Accede a las API de Google

Para acceder a las APIs potenciadas por los Servicios de Google Play en tu app para Android, debes usar objetos de cliente de la API. Estos objetos controlan la conexión a los Servicios de Google Play, ponen en cola las solicitudes y las ejecutan en orden cuando hay una conexión disponible. Puedes crear clientes de la API nuevos según sea necesario, ya que su construcción es económica.

Comenzar

Antes de comenzar, asegúrate de configurar los Servicios de Google Play en el proyecto de tu app.

Para acceder a un servicio que no requiere autorización, crea una instancia del objeto cliente del servicio y pasa un objeto Context o Activity. Si es necesario, se les solicita a los usuarios que actualicen los Servicios de Google Play antes de que se ejecuten las llamadas a la API.

En el siguiente fragmento de código, se muestra cómo obtener la última ubicación conocida del dispositivo con el proveedor de ubicación combinada:

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

Para acceder a las APIs que requieren autorización del usuario, sigue la guía para autorizar el acceso a los datos del usuario de Google. Si usas una API que requiere un objeto GoogleSignInAccount, usa el método AuthorizationResult#toGoogleSignInAccount().

Cómo comprobar la disponibilidad de la API

Antes de habilitar una función que depende de una API de los Servicios de Google Play, llama a checkApiAvailability() para verificar si la API está disponible en el dispositivo.

En el siguiente fragmento de código, se muestra cómo verificar si el proveedor de ubicación combinada 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."));
}