広告スパムと認証情報フィッシングを回避するため、Android 14 以降では、全画面通知を送信するデフォルトの USE_FULL_SCREEN_INTENT
権限を付与できる対象が、通話機能とアラーム機能があるアプリに制限されています。
Android 14 にインストールされているすべてのアプリは、USE_FULL_SCREEN_INTENT
権限がデフォルトで有効になっています。インストール時に Google Play ストアは通話機能とアラーム機能がないアプリの全画面インテント(FSI)権限を取り消します。
Android 13 以前のバージョンを搭載したスマートフォンにインストールされているアプリの場合、USE_FULL_SCREEN_INTENT
権限は引き続きデフォルトで有効になっています。
ユーザー権限
Android 14 では、アプリで NotificationManager#canUseFullScreenIntent()
を使用して、全画面通知を送信できるかどうかを確認できます。全画面通知を送信するユーザー権限を取得するには、図 1 に示すとおり、アプリで ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
を使用して、[全画面インテントの管理] 設定を起動します。
図 1. アプリが全画面インテントを送信できるようにする UI
[全画面インテントの管理] 設定は [特別なアプリアクセス] の下の [設定] メニューにあります。この UI を使って、ユーザーは必要に応じてこの権限を取り消せます。
OEM の要件
Android 14 では、アプリの FSI 権限はデフォルトで有効になっています。OEM は FSI 権限の資格があるアプリを指定する必要があります。OEM はサードパーティのアプリストアがアプリの FSI 権限の初期付与ステータスを PackageInstaller.SessionParams
を使って、具体的には PERMISSION_STATE_DEFAULT
、PERMISSION_STATE_DENIED
、PERMISSION_STATE_GRANTED
パラメータを使って設定していることを確認する必要があります。
検証
NotificationFullScreenIntentVerifierActivity.java
の CTS 検証ツールテストと NotificationManagerTest.java
の CTS テストを使用して、FSI 制限を検証します。
手動テスト
次のステップに沿って、手動でアプリの FSI 制限をテストします。
- アプリの
AndroidManifest.xml
ファイルでUSE_FULL_SCREEN_INTENT
を宣言します。 ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
を使用して、FSI をオンまたはオフにする設定を管理します。- テスト用スマートフォンで、図 1 のように全画面通知のユーザー権限を手動で切り替えます。
- FSI 通知を送信します。
- FSI 権限と表示モードの次の組み合わせで、全画面通知の表示を確認します。
FSI 権限 | ロック解除された画面 | ロック画面 | 画面オフ | 常に表示状態のディスプレイ(AOD) |
ユーザーによる許可 | 丸形のボタンが付いたヘッドアップ通知(HUN)が表示され続ける | FSI の起動 | FSI の起動 | FSI の起動 |
ユーザーによる却下 | 丸形ボタンが付いた HUN が 60 秒表示される | 丸形ボタンが付いた HUN がリストの最初に 60 秒表示される | AOD がオンになり、丸形ボタンが付いた HUN が 60 秒表示される | 丸形ボタンが付いた HUN が 60 秒表示される |