Untuk mengakses API yang didukung oleh layanan Google Play di aplikasi Android Anda, Anda harus menggunakan objek klien API. Objek ini menangani koneksi ke layanan Google Play, mengantrekan permintaan, dan mengeksekusinya secara berurutan saat koneksi tersedia. Anda dapat membuat klien API baru sesuai kebutuhan, karena klien ini tidak mahal untuk dibuat.
Mulai
Sebelum memulai, pastikan Anda telah 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 dijalankan.
Cuplikan kode berikut menunjukkan cara mendapatkan lokasi terakhir perangkat yang diketahui menggunakan Fused Location Provider:
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
mengizinkan 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.")); }