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 den Google Play-Diensten, stellen Anfragen in die Warteschlange und führen sie nacheinander aus, sobald 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 des Clientobjekts des Dienstes und übergeben Sie entweder ein Context
- oder ein Activity
-Objekt. Falls erforderlich, werden Nutzer aufgefordert, die Google Play-Dienste zu aktualisieren, bevor API-Aufrufe ausgeführt werden.
Im folgenden Code-Snippet wird gezeigt, wie Sie den letzten bekannten Standort des Geräts mit dem Anbieter für den kombinierten Standort 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, für die ein GoogleSignInAccount
-Objekt erforderlich ist, verwenden Sie die Methode AuthorizationResult#toGoogleSignInAccount()
.
API-Verfügbarkeit prüfen
Bevor Sie eine Funktion aktivieren, die von einer Google Play-Dienst-API abhängt, prüfen Sie, ob die API auf dem Gerät verfügbar ist. Rufen Sie dazu checkApiAvailability()
auf.
Im folgenden Code-Snippet wird gezeigt, wie Sie prüfen, ob der Anbieter für den kombinierten Standort 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.")); }