Izin Lokasi Tristate

Izin lokasi tiga negara di Android 10 memberi pengguna kontrol lebih besar terhadap cara aplikasi mengakses lokasi perangkat mereka.

Di Android 9 dan yang lebih rendah, pengguna terus-menerus membuat pilihan saat memberikan akses lokasi ke aplikasi. Mereka bisa saja Deny atau Allow , yang terakhir memberikan akses aplikasi sepanjang waktu (latar depan dan latar belakang). Izin lokasi tristate di Android 10 memberi pengguna tiga opsi untuk mengizinkan aplikasi mengakses lokasi perangkat. Pengguna diminta untuk memberikan atau menolak tingkat izin ketika aplikasi memintanya.

Pengguna biasanya melihat tiga pilihan yang disajikan pada Gambar 1. Namun, ada kasus penggunaan di mana hanya dua opsi yang diperlukan, dan dalam kasus tersebut hanya dua opsi yang ditampilkan.

Tristate location permissions screen
Gambar 1. Layar notifikasi Tristate

Ini adalah tiga opsi:

  • Izinkan sepanjang waktu : lokasi perangkat diketahui oleh aplikasi meskipun aplikasi tidak digunakan (berjalan di latar belakang). Ini setara dengan mengizinkan izin di Android 9 dan lebih rendah.
  • Izinkan hanya saat aplikasi sedang digunakan : (hanya latar depan) lokasi perangkat hanya terlihat oleh aplikasi saat sedang aktif berjalan.
  • Deny : lokasi perangkat tidak pernah terlihat oleh aplikasi. Ini sama dengan menolak izin di Android 9 dan lebih rendah.

Pengguna diminta untuk memberikan izin akses lokasi ketika aplikasi meminta izin.

Setelah pengguna memberikan izin akses kepada Izinkan hanya saat aplikasi sedang digunakan , aplikasi dapat meminta peningkatan akses bertahap ke Izinkan sepanjang waktu . Pengguna melihat dialog permintaan (ditunjukkan pada Gambar 2 ). Jika pengguna memilih Simpan akses saat digunakan , saat aplikasi mengakses lokasi perangkat pada penggunaan berikutnya, dialog akan memberikan opsi untuk Simpan dan jangan tanya lagi .

Dialog muncul dalam kondisi berikut untuk aplikasi yang menargetkan Android 10:

  • Setelah setidaknya 24 jam pemberian izin.
  • Hanya jika aplikasi menerima lokasi di latar belakang.
  • Saat layar aktif, dan pengguna tidak menggunakan aplikasi lain.
Incremental permissions
Gambar 2. Izin tambahan

Untuk mempelajari lebih lanjut tentang meminta izin, lihat Akses aplikasi ke lokasi perangkat . Untuk mengetahui detail apakah aplikasi Anda menargetkan Android 9 dan yang lebih rendah, lihat Kelanjutan tindakan yang dimulai oleh pengguna .

Dampak

Fitur izin lokasi tiga negara memengaruhi aplikasi apa pun yang memerlukan akses lokasi perangkat saat berjalan di latar belakang, dan diperlukan di Android 10.

Anda dapat mengubah kode Anda tetapi Anda tidak boleh mengubah atau menyesuaikan perilaku terkait izin dalam kerangka kerja.

Penerapan

Izin lokasi tristate diterapkan ke aplikasi di Android 10, apa pun SDK target aplikasi.

Untuk informasi tentang penerapan kasus penggunaan aplikasi Anda (tentang peningkatan versi), lihat bagian Desain untuk skenario peningkatan perangkat dalam dokumentasi pengembang.

Untuk mengetahui cara mengaktifkan akses untuk berbagai kasus penggunaan (seperti memerlukan akses lokasi latar belakang untuk aplikasi seperti Google Maps atau layanan Google Play), lihat topik berikut di halaman Akses aplikasi ke lokasi perangkat :

Akses lokasi dalam aplikasi

Pengguna dapat mengubah izin akses aplikasi Anda menjadi Tolak atau Izinkan hanya saat menggunakan aplikasi jika mereka mau. Untuk izin akses lokasi dalam aplikasi, dan untuk semua aplikasi pihak pertama dan pihak ketiga, berikan tingkat kontrol pengguna yang diberikan dalam tabel berikut.

Aplikasi jenis izin perlu meminta Opsi pengguna untuk disediakan
Aplikasi hanya meminta izin latar depan Izinkan hanya saat menggunakan aplikasi
Membantah
Aplikasi selalu meminta izin (latar depan dan latar belakang) Izinkan sepanjang waktu
Izinkan hanya saat menggunakan aplikasi
Membantah
Semua aplikasi dengan permintaan akses lokasi Izinkan hanya saat menggunakan aplikasi

Izin ini berlaku untuk semua permintaan lokasi. Aplikasi dengan Izinkan saja saat menggunakan izin aplikasi tidak diizinkan menggunakan Wi-Fi latar belakang atau pemindaian seluler.

Di Android 11 atau lebih rendah, aplikasi dengan Izinkan saja saat menggunakan izin aplikasi tidak diizinkan melakukan pemindaian Bluetooth di latar belakang. Mulai Android 12, aplikasi dengan Izinkan saja saat menggunakan izin aplikasi dapat memperoleh hasil pemindaian Bluetooth dengan menyetel nilai atribut android:usesPermissionFlags ke neverForLocation . Untuk detail selengkapnya, lihat Aplikasi tidak memperoleh lokasi fisik .

Peningkatan sistem operasi

Pada peningkatan OS ke Android 10, izin lokasi aplikasi diterjemahkan sebagai berikut:

  • Aktif menjadi Izinkan hanya saat digunakan .
  • Mati tetap mati ( Deny ).
  • Akses lokasi yang telah diberikan sebelumnya menjadi izin yang hanya diizinkan saat digunakan .