ユーザーのプライバシーをさらに保護するために、Android 11 では位置情報への 1 回限りのアクセスが追加され、ユーザーがバックグラウンドでの位置情報アクセスを許可する方法が変更されています。この更新は、Android 11 以降で実行されるすべてのアプリに影響があります。
1 回限りのアクセス
Android 11 以降では、アプリがフォアグラウンド位置情報へのアクセスをリクエストするたびに、図 1 に示すように、システム権限ダイアログに [今回のみ] というオプションが表示されます。このオプションを使用すると、アプリが位置情報にアクセスできるタイミングをより細かく管理できるようになります。
詳しくは、1 回だけのアクセス許可の扱いに関する記事をご覧ください。
バックグラウンドでの位置情報へのアクセス
Android 11 では、アプリの機能がバックグラウンド位置情報へのアクセス権を取得する方法が変更されています。このセクションではそれぞれの変更について説明します。
アプリ内の機能がバックグラウンドで位置情報にアクセスする場合、そのアクセスが必要かどうかを確認します。バックグラウンドでの位置情報へのアクセス方法のページに記載されているように、その機能が必要とする情報を他の方法で取得することも検討してください。
バックグラウンドでの位置情報を別途リクエストする
実行時に位置情報アクセスをリクエストするに記載されているように、位置情報リクエストを逐次行ってください。Android 11 以降をターゲットとするアプリの場合、システムはこのおすすめの方法を適用します。フォアグラウンドおよびバックグラウンドでの位置情報の利用許可を同時にリクエストすると、システムはリクエストを無視し、アプリにどちらの許可も与えません。
権限ダイアログの変更
変更の詳細
変更の名前: BACKGROUND_RATIONALE_CHANGE_ID
変更 ID: 147316723
切り替え方法
アプリと Android 11 との互換性をテストする際に、以下の ADB コマンドを使用して、この変更をオンまたはオフに切り替えることができます。
adb shell am compat enable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME
adb shell am compat disable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME
互換性フレームワークと変更の切り替えについて詳しくは、アプリでのプラットフォームの動作変更のテストとデバッグをご覧ください。
Android 11 以降を搭載するデバイスにおいて、アプリ内の機能からバックグラウンドで位置情報がリクエストされる場合、バックグラウンドでの位置情報へのアクセスを有効にするボタンがシステム ダイアログに表示されません。バックグラウンドでの位置情報へのアクセスを有効にするには、バックグラウンドでの位置情報のリクエスト方法に関するガイドに記載されているように、設定ページでアプリの位置情報へのアクセスを [常に許可] に設定する必要があります。
参考情報
バックグラウンドでの位置情報へのアクセスについて詳しくは、次の資料をご覧ください。