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