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