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">
その後、まずボディセンサーへのアクセスをリクエストし、次にバックグラウンド センサーへのアクセスをリクエストする必要があります。
BODY_SENSORS
が付与されているかどうかを確認します。付与されていない場合はリクエストします。BODY_SENSORS_BACKGROUND
が付与されているかどうかを確認します。付与されていない場合はリクエストします。
注意: アプリが両方のボディセンサーの権限を同時にリクエストした場合、システムはリクエストを無視し、アプリにどちらの権限も付与しません。
Android 13(API レベル 33)以降では、実行時の権限ダイアログに [常に許可] オプションは含まれません。代わりに、図 1 に示すように、ユーザーがシステム設定からバックグラウンド センサーの常時アクセスを有効にする必要があります。BODY_SENSORS
権限を付与した後に BODY_SENSORS_BACKGROUND
権限をリクエストすると、ユーザーがこの設定ページに移動できるようになります。ユーザーが常時アクセスを拒否しても、ユーザーはアプリの利用を継続できます。
Android 12 以前をターゲットとするアプリ
アプリが Android 12 以前をターゲットとしている場合、BODY_SENSORS
権限をリクエストしても、バックグラウンドでのアクセスが自動的に許可されることはありません。代わりに、図 2 に示すように、アプリのセンサー権限の設定に移動するためのハイパーリンクを含むシステム ダイアログが表示されます。ユーザーは、設定ページでバックグラウンド センサーの使用を有効にする必要があります。
ユーザーはバックグラウンドでのアクセスを拒否できます。これは、アプリがバックグラウンドで実行されているときに BODY_SENSORS
権限を取り消すのと同じ効果があります。アプリが、バックグラウンドでのアクセスの権限を持たずに PassiveMonitoringClient
を使用してバックグラウンドに移動すると、アプリは BODY_SENSORS
権限を失い、onPermissionLost()
コールバックが呼び出されます。こうした理由から、実行時の権限をリクエストするためのおすすめの方法を実践することが特に重要です。