要求存取人體感應器資料的背景存取權

Android 13 和 Wear OS 4 引進了一種方式,讓應用程式存取人體感應器,例如: 從背景分析心率這種全新的存取模式 在 Android 10 (API 級別 29) 中推出背景位置資訊存取權

如果您的應用程式需要在背景存取人體感應器資訊,例如 在背景監控健康照護服務資料,您必須要求 BODY_SENSORS_BACKGROUND權限。

如「隱私權最佳做法」所述,應用程式只能要求使用者提供 BODY_SENSORS_BACKGROUND 權限 (若對面向使用者至關重要) 功能,且應向使用者適當揭露這項資訊。

授予權限的程序視應用程式的目標 SDK 而定 版本。

應用程式指定 Android 13 以上版本

除了現有的 BODY_SENSORS 權限以外,請宣告 BODY_SENSORS_BACKGROUND 權限:

<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">

接著,應用程式必須分多次作業要求權限:

  1. 檢查使用者是否已授予 BODY_SENSORS。如果沒有,請提出權限要求。
  2. 檢查使用者是否已授予 BODY_SENSORS_BACKGROUND。如果沒有,請提出 權限。
「All the time」選項是在設定畫面上的第一個清單項目
圖 1. 感應器設定有個選項:「All the 時間,這項設定可授予背景感應器資料存取權。

注意:如果您的應用程式會在 同時,系統會忽略要求,也不會授予您的應用程式 權限。

在 Android 13 (API 級別 33) 以上版本中,執行階段權限對話方塊並未 請納入「一律允許」如果有需要 SQL 指令的分析工作負載 則 BigQuery 可能是最佳選擇相反地,使用者必須啟用「一律允許」 背景感應器存取權,如圖 1 所示。當您 授予 BODY_SENSORS_BACKGROUND 權限後,即可要求 BODY_SENSORS 權限,即可協助使用者前往這個設定頁面。如果 使用者拒絕「一律允許」權限,應該能繼續使用 應用程式。

應用程式指定較舊版本

連結文字為「go to settings」
圖 2. 權限對話方塊中有個連結,可讓使用者前往前往該頁面 針對系統設定中應用程式授予感應器權限的權限。

應用程式指定的 Android 版本低於 Android 13 時,背景為背景 您要求BODY_SENSORS時,系統不會自動授予存取權 權限。相反地,使用者會看到系統對話方塊,邀請使用者前往 應用程式感應器權限設定,如圖 2 所示。接著,使用者必須 您可以在該設定頁面啟用背景感應器。

當然,使用者可以拒絕背景存取權,效果等同於撤銷 BODY_SENSORS 權限。如果 應用程式在沒有背景存取權的情況下正在使用「PassiveMonitoringClient 進入背景時,應用程式會失去 BODY_SENSORS 權限,且 系統會呼叫 onPermissionLost() 回呼。基於上述原因 尤其重要的是,請務必遵循要求執行階段的最佳做法 授予其要求的權限。