Auf Google APIs zugreifen

Wenn Sie in Ihrer Android-App auf APIs zugreifen möchten, die von Google Play-Diensten unterstützt werden , müssen Sie API-Clientobjekte verwenden. Diese Objekte verwalten die Verbindung zu Google Play-Diensten, stellen Anfragen in die Warteschlange und führen sie in der Reihenfolge aus, in der eine Verbindung verfügbar ist. Sie können nach Bedarf neue API-Clients erstellen, da sie kostengünstig zu erstellen sind.

Jetzt starten

Bevor Sie beginnen, müssen Sie Google Play-Dienste in Ihrem App-Projekt einrichten.

Wenn Sie auf einen Dienst zugreifen möchten, für den keine Autorisierung erforderlich ist, erstellen Sie eine Instanz von dem Clientobjekt des Dienstes und übergeben Sie entweder ein Context oder ein Activity Objekt. Bei Bedarf werden Nutzer aufgefordert, Google Play-Dienste zu aktualisieren, bevor API-Aufrufe ausgeführt werden.

Das folgende Code-Snippet zeigt, wie Sie mit dem Fused Location Provider den letzten bekannten Standort des Geräts abrufen:

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

Wenn Sie auf APIs zugreifen möchten, für die eine Nutzerautorisierung erforderlich ist, folgen Sie der Anleitung zum Autorisieren des Zugriffs auf Google-Nutzerdaten. Wenn Sie eine API verwenden, die ein GoogleSignInAccount-Objekt erfordert, verwenden Sie die AuthorizationResult#toGoogleSignInAccount() Methode.

API-Verfügbarkeit prüfen

Bevor Sie eine Funktion aktivieren, die von einer Google Play-Dienste-API abhängt, prüfen Sie, ob die API auf dem Gerät verfügbar ist, indem Sie checkApiAvailability()aufrufen.

Das folgende Code-Snippet zeigt, wie Sie prüfen, ob der Fused Location Provider verfügbar ist:

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