Seperti yang dijelaskan di halaman meminta izin akses lokasi dan praktik terbaik privasi, aplikasi sebaiknya hanya meminta jenis izin akses lokasi yang benar-benar diperlukan oleh fitur yang ditampilkan kepada pengguna, dan mengungkapkan hal ini dengan benar kepada pengguna. Sebagian besar kasus penggunaan hanya memerlukan lokasi saat pengguna berinteraksi dengan aplikasi. Jika aplikasi Anda memerlukan lokasi latar belakang, seperti saat menerapkan pembatasan wilayah, pastikan bahwa akses tersebut benar-benar diperlukan oleh fungsi inti aplikasi, menawarkan manfaat yang jelas bagi pengguna, dan dilakukan dengan cara yang jelas.
Checklist akses lokasi latar belakang
Gunakan checklist berikut untuk mengidentifikasi kemungkinan logika akses lokasi di latar belakang:
Dalam manifes aplikasi, lihat izin
ACCESS_COARSE_LOCATIONdan izinACCESS_FINE_LOCATION. Pastikan aplikasi Anda membutuhkan izin akses lokasi ini.- Jika aplikasi Anda menargetkan Android 10 (level API 29) atau yang lebih baru, lihat juga izin
ACCESS_BACKGROUND_LOCATION. Pastikan aplikasi Anda memiliki fitur yang membutuhkannya.
- Jika aplikasi Anda menargetkan Android 10 (level API 29) atau yang lebih baru, lihat juga izin
Cari penggunaan API akses lokasi dalam kode Anda, seperti Fused Location Provider API, Geofencing API, atau
LocationManagerAPI, seperti konsep berikut:- Layanan latar belakang
- Tugas
WorkManageratauJobScheduler - Operasi
AlarmManager - Intent tertunda yang dipanggil dari widget aplikasi
Jika aplikasi Anda menggunakan SDK atau library yang mengakses lokasi, akses ini akan dikaitkan dengan aplikasi Anda. Untuk menentukan apakah SDK atau library memerlukan akses lokasi, baca dokumentasi library.
Mengevaluasi akses lokasi latar belakang
Jika ternyata aplikasi Anda mengakses lokasi di latar belakang, pertimbangkan untuk melakukan tindakan berikut:
- Evaluasi apakah akses lokasi latar belakang benar-benar diperlukan oleh fungsi inti aplikasi.
Jika tidak memerlukan akses lokasi di latar belakang, hapus akses.
Jika aplikasi Anda menargetkan Android 10 (level API 29) atau yang lebih baru, hapus izin
ACCESS_BACKGROUND_LOCATIONdari manifes aplikasi Anda. Jika izin ini dihapus, akses lokasi sepanjang waktu tidak dapat digunakan untuk aplikasi di perangkat yang menjalankan Android 10.Pastikan pengguna mengetahui bahwa aplikasi Anda mengakses lokasi di latar belakang. Hal ini sangat penting untuk kasus yang tidak jelas bagi pengguna.
Jika memungkinkan, merefaktorisasi logika akses lokasi sehingga Anda hanya meminta lokasi saat Activity aplikasi dapat dilihat oleh pengguna.
Pembaruan terbatas pada lokasi latar belakang
Jika akses lokasi latar belakang sangat penting untuk aplikasi Anda, perlu diingat bahwa Android mempertahankan masa pakai baterai perangkat dengan menetapkan batas lokasi latar belakang di perangkat yang menjalankan Android 8.0 (API level 26) dan yang lebih baru. Pada versi Android ini, jika aplikasi Anda berjalan di latar belakang, aplikasi hanya dapat menerima pembaruan lokasi beberapa kali setiap jam. Untuk mengetahui informasi selengkapnya, lihat Batas lokasi latar belakang.
Referensi lainnya
Untuk mempelajari penggunaan lokasi latar belakang lebih lanjut, lihat materi berikut:
Video
Cara menemukan kemungkinan penggunaan lokasi latar belakang
Contoh
Contoh lokasi latar belakang menunjukkan praktik terbaik untuk mengakses lokasi saat aplikasi berada di latar belakang.