Akses Google API

Untuk mengakses API yang didukung oleh layanan Google Play di aplikasi Android, Anda harus menggunakan objek klien API. Objek ini menangani koneksi ke layanan Google Play, mengantrekan permintaan, dan menjalankannya secara berurutan saat koneksi tersedia. Anda dapat membuat klien API baru sesuai kebutuhan, karena pembuatannya tidak mahal.

Mulai

Sebelum memulai, pastikan untuk menyiapkan layanan Google Play di project aplikasi Anda.

Untuk mengakses layanan yang tidak memerlukan otorisasi, buat instance objek klien layanan, dengan meneruskan objek Context atau Activity. Jika perlu, pengguna akan diminta untuk mengupgrade layanan Google Play sebelum panggilan API apa pun dieksekusi.

Cuplikan kode berikut menunjukkan cara mendapatkan lokasi terakhir perangkat yang diketahui menggunakan Penyedia Lokasi Gabungan:

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

Untuk mengakses API yang memerlukan otorisasi pengguna, ikuti panduan untuk memberi otorisasi akses ke data pengguna Google. Jika Anda menggunakan API yang memerlukan objek GoogleSignInAccount, gunakan metode AuthorizationResult#toGoogleSignInAccount().

Memeriksa ketersediaan API

Sebelum mengaktifkan fitur yang bergantung pada API layanan Google Play, periksa apakah API tersedia di perangkat dengan memanggil checkApiAvailability().

Cuplikan kode berikut menunjukkan cara memeriksa apakah penyedia lokasi gabungan tersedia:

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