Android 13 dan Wear OS 4 memperkenalkan cara bagi aplikasi untuk mengakses sensor tubuh, seperti sebagai detak jantung, dari latar belakang. Model akses baru ini mirip dengan yang yang memperkenalkan akses lokasi latar belakang di Android 10 (API level 29).
Jika aplikasi Anda perlu mengakses informasi sensor tubuh di latar belakang, seperti saat
memantau data Fitur Kesehatan di latar belakang, Anda harus meminta
izin BODY_SENSORS_BACKGROUND
.
Seperti yang dijelaskan di halaman praktik terbaik privasi, aplikasi hanya boleh meminta
izin BODY_SENSORS_BACKGROUND
jika memang penting bagi fitur
yang ditampilkan kepada pengguna, dan aplikasi harus mengungkapkan dengan benar kepada pengguna.
Proses pemberian izin bergantung pada versi SDK target aplikasi.
Aplikasi menargetkan Android 13 atau yang lebih baru
Selain izin BODY_SENSORS
yang ada, deklarasikan
izin BODY_SENSORS_BACKGROUND
dalam file manifes Anda:
<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">
Kemudian, aplikasi Anda harus meminta izin dalam operasi terpisah:
- Periksa apakah
BODY_SENSORS
telah diberikan. Jika belum, minta izin. - Periksa apakah
BODY_SENSORS_BACKGROUND
telah diberikan. Jika belum, minta izin.
Perhatian: Jika aplikasi Anda meminta kedua izin sensor tubuh secara bersamaan, sistem akan mengabaikan permintaan tersebut dan tidak memberikan izin kepada aplikasi.
Di Android 13 (API level 33) dan yang lebih baru, dialog izin runtime tidak
menyertakan opsi "Izinkan sepanjang waktu". Sebagai gantinya, pengguna harus mengaktifkan
akses sensor latar belakang sepanjang waktu dari setelan sistem, seperti yang ditunjukkan pada gambar 1. Saat
meminta izin BODY_SENSORS_BACKGROUND
setelah memberikan
izin BODY_SENSORS
, Anda dapat membantu pengguna membuka halaman setelan ini. Jika
pengguna menolak akses sepanjang waktu, mereka seharusnya dapat terus menggunakan
aplikasi Anda.
Aplikasi menargetkan versi sebelumnya
Jika aplikasi Anda menargetkan versi Android yang lebih lama dari Android 13, akses
latar belakang tidak akan otomatis diberikan saat Anda meminta izin
BODY_SENSORS
. Sebagai gantinya, pengguna akan melihat dialog sistem yang mengundang pengguna untuk membuka
setelan izin sensor aplikasi, seperti yang ditunjukkan pada gambar 2. Kemudian, pengguna harus
mengaktifkan penggunaan sensor latar belakang di halaman setelan tersebut.
Pengguna dapat menolak akses latar belakang. Kebijakan ini memiliki efek yang sama dengan mencabut
izin BODY_SENSORS
saat aplikasi Anda berjalan di latar belakang. Saat
aplikasi menggunakan PassiveMonitoringClient
tanpa izin akses latar belakang
dan beralih ke latar belakang, aplikasi akan kehilangan izin BODY_SENSORS
dan
callback onPermissionLost()
akan dipanggil. Karena alasan ini, Anda
harus mengikuti praktik terbaik untuk meminta izin
runtime.