全画面インテントの制限

広告スパムと認証情報フィッシングを回避するため、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 を使用して、[全画面インテントの管理] 設定を起動します。

fsi-ui

図 1. アプリが全画面インテントを送信できるようにする UI

[全画面インテントの管理] 設定は [特別なアプリアクセス] の下の [設定] メニューにあります。この UI を使って、ユーザーは必要に応じてこの権限を取り消せます。

OEM の要件

Android 14 では、アプリの FSI 権限はデフォルトで有効になっています。OEM は FSI 権限の資格があるアプリを指定する必要があります。OEM はサードパーティのアプリストアがアプリの FSI 権限の初期付与ステータスを PackageInstaller.SessionParams を使って、具体的には PERMISSION_STATE_DEFAULTPERMISSION_STATE_DENIEDPERMISSION_STATE_GRANTED パラメータを使って設定していることを確認する必要があります。

検証

NotificationFullScreenIntentVerifierActivity.java の CTS 検証ツールテストと NotificationManagerTest.java の CTS テストを使用して、FSI 制限を検証します。

手動テスト

次のステップに沿って、手動でアプリの FSI 制限をテストします。

  1. アプリの AndroidManifest.xml ファイルで USE_FULL_SCREEN_INTENT を宣言します。
  2. ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT を使用して、FSI をオンまたはオフにする設定を管理します。
  3. テスト用スマートフォンで、図 1 のように全画面通知のユーザー権限を手動で切り替えます。
  4. FSI 通知を送信します。
  5. FSI 権限と表示モードの次の組み合わせで、全画面通知の表示を確認します。
FSI 権限 ロック解除された画面 ロック画面 画面オフ 常に表示状態のディスプレイ(AOD)
ユーザーによる許可 丸形のボタンが付いたヘッドアップ通知(HUN)が表示され続ける FSI の起動 FSI の起動 FSI の起動
ユーザーによる却下 丸形ボタンが付いた HUN が 60 秒表示される 丸形ボタンが付いた HUN がリストの最初に 60 秒表示される AOD がオンになり、丸形ボタンが付いた HUN が 60 秒表示される 丸形ボタンが付いた HUN が 60 秒表示される