Meminta akses latar belakang ke data sensor tubuh

Android 13 dan Wear OS 4 memperkenalkan cara agar aplikasi dapat mengakses sensor tubuh, seperti detak jantung, dari latar belakang. Model akses baru ini mirip dengan model 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:

  1. Periksa apakah BODY_SENSORS telah diberikan. Jika belum, minta izin.
  2. Periksa apakah BODY_SENSORS_BACKGROUND telah diberikan. Jika belum, minta izin.
Opsi sepanjang waktu adalah item daftar pertama di layar setelan
Gambar 1. Setelan sensor menyertakan opsi yang disebut Sepanjang waktu, yang memberikan akses data sensor latar belakang.

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

Teks link-nya adalah &#39;buka setelan&#39;
Gambar 2. Dialog izin menyertakan link untuk mengarahkan pengguna ke izin sensor aplikasi di setelan sistem.

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.