Bergabunglah bersama kami di ⁠#Android11: The Beta Launch Show pada tanggal 3 Juni!

Update lokasi di Android 11

Android 11 memperkenalkan perubahan pada cara aplikasi meminta izin akses lokasi latar belakang serta cara pengguna memberikannya. Perubahan spesifik ini bergantung pada versi SDK target aplikasi, tetapi semua aplikasi yang berjalan di Android 11 akan terpengaruh.

Akses lokasi latar belakang

Gambar 1. Dialog dalam aplikasi untuk izin akses lokasi tidak lagi menyertakan opsi “Izinkan sepanjang waktu”

Android 11 semakin meningkatkan kontrol pengguna atas informasi lokasi dengan menambahkan izin satu kali, serta dengan menghapus kemampuan bagi pengguna untuk memberikan izin ACCESS_BACKGROUND_LOCATION dari permintaan dalam aplikasi, seperti yang ditunjukkan pada Gambar 1.

Semua aplikasi yang berjalan di Android 11 akan terpengaruh oleh perubahan ini. Cara aplikasi Anda terpengaruh bergantung pada versi SDK target aplikasi Anda:

  • Jika aplikasi Anda menargetkan Android 11, Anda dapat membuat UI kustom untuk menjelaskan kepada pengguna mengapa aplikasi Anda memerlukan izin ACCESS_BACKGROUND_LOCATION.
  • Jika aplikasi menargetkan versi yang lebih rendah, Anda harus menggunakan UI bawaan sistem yang menyatakan bahwa aplikasi Anda ingin mengakses informasi lokasi di latar belakang, meskipun aplikasi sedang tidak digunakan.

Membuat UI kustom

Jika aplikasi Anda menargetkan Android 11, Anda dapat menampilkan UI kustom untuk menjelaskan dengan sebaik-baiknya kepada pengguna mengapa aplikasi Anda memerlukan izin ACCESS_BACKGROUND_LOCATION.

Ikuti pedoman di bagian ini untuk membuat UI yang mudah dipahami pengguna.

Menjelaskan persyaratan lokasi latar belakang aplikasi Anda

Untuk meminta ACCESS_BACKGROUND_LOCATION di aplikasi Anda, aplikasi harus mendapatkan izin akses lokasi latar depan terlebih dahulu, baik ACCESS_COARSE_LOCATION maupun ACCESS_FINE_LOCATION. Jika Anda mencoba meminta ACCESS_BACKGROUND_LOCATION dan izin lainnya pada saat yang sama, sistem akan menampilkan pengecualian.

Setelah aplikasi memiliki salah satu izin ini, tampilkan UI untuk fitur yang memerlukan izin ACCESS_BACKGROUND_LOCATION kepada pengguna. UI ini harus menyertakan teks yang menjelaskan mengapa fitur aplikasi Anda memerlukan izin ACCESS_BACKGROUND_LOCATION dan memberikan pilihan berikut kepada pengguna:

  • Izinkan. Jika pengguna memilih opsi ini, buat permintaan izin untuk ACCESS_BACKGROUND_LOCATION. Sistem akan mengarahkan pengguna ke setelan sistem untuk menyelesaikan proses pemberian izin ini.

    Untuk membantu pengguna menemukan opsi dalam setelan yang memungkinkan mereka memberikan izin ACCESS_BACKGROUND_LOCATION, Anda dapat menyertakan label opsi setelan yang dapat dilihat pengguna di UI aplikasi Anda. Metode getBackgroundPermissionOptionLabel() menyediakan label yang dilokalkan sesuai preferensi bahasa perangkat pengguna.

  • Jangan izinkan. Pengguna harus tetap dapat menggunakan aplikasi Anda meskipun mereka tidak memberikan izin. Jika pengguna memilih opsi ini, aplikasi Anda tetap dapat dilanjutkan dengan lancar, dan mungkin akan menjauhkan pengguna dari fitur yang memerlukan akses lokasi latar belakang.

Perlu diingat bahwa meskipun aplikasi Anda telah diberi izin ACCESS_BACKGROUND_LOCATION, pengguna tetap dapat mengubah akses lokasi aplikasi Anda menjadi Hanya izinkan saat aplikasi digunakan atau Selalu tanya di setelan sistem. Pengguna juga dapat menolak akses lokasi sepenuhnya.

Mengarahkan pengguna ke setelan sistem jika perlu

Opsi terletak di bagian yang berjudul 'Akses lokasi untuk aplikasi ini'
Gambar 1. Layar setelan menyertakan opsi yang disebut Izinkan sepanjang waktu yang mengizinkan akses lokasi latar belakang

Jika pengguna setuju untuk memberikan izin ACCESS_BACKGROUND_LOCATION ke aplikasi Anda, aplikasi harus mengarahkan pengguna ke layar setelan seperti yang ditunjukkan pada Gambar 2. Layar ini menyertakan opsi Izinkan sepanjang waktu yang memberikan izin ACCESS_BACKGROUND_LOCATION ke aplikasi Anda.

Pengalihan terbatas ke setelan sistem

Setelah aplikasi mengarahkan pengguna ke halaman izinnya di setelan sistem, pengguna dapat memilih tingkat akses lokasi selain Izinkan sepanjang waktu, misalnya Tolak. Android 11 memungkinkan aplikasi Anda mengarahkan pengguna ke setelan sistem dari UI maksimal sebanyak 2 kali. Oleh karena itu, sangat penting bagi Anda untuk menjelaskan sebaik-baiknya kepada pengguna mengapa fitur aplikasi Anda memerlukan akses ke lokasi latar belakang.

Saat aplikasi mencapai batas ini, Anda masih dapat memanggil intent yang mengarahkan pengguna ke halaman info aplikasi Anda dalam setelan sistem. Dari sana, pengguna dapat membuka halaman izin aplikasi Anda. Untuk memuat halaman info aplikasi, gunakan tindakan intent Settings.ACTION_APPLICATION_DETAILS_SETTINGS.

Perhatian: Penggunaan ACTION_APPLICATION_DETAILS_SETTINGS sangat tidak disarankan karena tidak menjelaskan kepada pengguna bahwa aplikasi Anda meminta izin.

Menggunakan UI bawaan sistem

Jika aplikasi Anda menargetkan versi Android 10 (API level 29) atau versi yang lebih rendah, Anda harus menampilkan dialog bawaan sistem, seperti yang ditunjukkan pada Gambar 3, saat meminta izin ACCESS_BACKGROUND_LOCATION:

Dalam kedua versi dialog, link untuk 'Izinkan dalam setelan' akan muncul sebelum opsi izin akses lokasi lainnya
Gambar 3. Permintaan izin akses lokasi yang menyertakan link ke setelan sistem, saat izin akses lokasi belum diberikan (kiri) dan setelah pengguna memberikan izin akses lokasi latar depan (kanan).

Dialog ini mencakup hal berikut:

  • Petunjuk tentang cara membuka halaman izin akses lokasi aplikasi Anda di setelan sistem untuk memilih Izinkan sepanjang waktu.
  • Tombol yang mengizinkan akses lokasi latar depan, atau tombol yang menolak upgrade ke akses lokasi latar belakang.