Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Full-screen intent limits
Stay organized with collections
Save and categorize content based on your preferences.
To prevent ad spam and credential phishing, starting with Android 14,
the default USE_FULL_SCREEN_INTENT
permission to send full-screen notifications can be granted only to apps that
provide calling and alarm functionalities.
For all apps being installed on Android 14, the
USE_FULL_SCREEN_INTENT
permission is enabled by default. Upon installation, the Google Play Store
revokes the full-screen intent (FSI) permission for apps that do not have
calling or alarm functionalities.
For apps installed on phones running versions
Android 13 or lower, the
USE_FULL_SCREEN_INTENT
permission remains enabled by default.
User permission
With Android 14, apps can use NotificationManager#canUseFullScreenIntent()
to check if they can send full-screen notifications. To get user permission to
send full-screen notifications, apps use ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
to launch the Manage full screen intents setting as shown in Figure 1:
Figure 1. UI for enabling apps to send full-screen intents.
The Manage full screen intents setting is in the Settings menu under
Special App Access. With this UI, users can revoke this permission if needed.
OEM requirements
In Android 14, FSI permissions for apps are enabled by
default. OEMs must specify which apps qualify for FSI permissions. OEMs must
ensure that third-party app stores set the initial grant states of FSI
permissions for their apps using
PackageInstaller.SessionParams
,
specifically with the PERMISSION_STATE_DEFAULT
, PERMISSION_STATE_DENIED
, and PERMISSION_STATE_GRANTED
parameters.
Validation
Use the CTS Verifier test in NotificationFullScreenIntentVerifierActivity.java
,
and the CTS test in NotificationManagerTest.java
to validate the FSI limits.
Manual tests
Follow these steps to manually test FSI limits on your app:
- Declare
USE_FULL_SCREEN_INTENT
in your app's AndroidManifest.xml
file.
- Use
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
to manage settings to turn FSI on or off.
- On your test phone, manually toggle the user permission for full-screen
notifications as shown in Figure 1.
- Send an FSI notification.
- Validate the appearance of the full-screen notification for the following
combinations of FSI permission and display modes:
FSI permission
|
Unlocked screen
|
Locked screen
|
Off screen
|
Always-on display (AOD)
|
Granted by user
|
Persistent heads-up notification (HUN) with pill buttons
|
Launch FSI
|
Launch FSI
|
Launch FSI
|
Denied by user
|
HUN with pill buttons for 60s
|
HUN with pill buttons shows up first in the list for 60s
|
AOD turns on, shows HUN with pill buttons for 60s
|
HUN with pill buttons for 60s
|
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-06-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-26 UTC."],[],[],null,["# Full-screen intent limits\n\nTo prevent ad spam and credential phishing, starting with Android 14,\nthe default [`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT)\npermission to send full-screen notifications can be granted only to apps that\nprovide calling and alarm functionalities.\n\nFor all apps being installed on Android 14, the\n[`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT)\npermission is enabled by default. Upon installation, the Google Play Store\nrevokes the full-screen intent (FSI) permission for apps that do not have\ncalling or alarm functionalities.\n\nFor apps installed on phones running versions\nAndroid 13 or lower, the\n[`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT)\npermission remains enabled by default.\n\nUser permission\n---------------\n\nWith Android 14, apps can use [`NotificationManager#canUseFullScreenIntent()`](https://developer.android.com/reference/android/app/NotificationManager#canUseFullScreenIntent())\nto check if they can send full-screen notifications. To get user permission to\nsend full-screen notifications, apps use [`ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/provider/Settings#ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT)\nto launch the **Manage full screen intents** setting as shown in Figure 1:\n\n**Figure 1.** UI for enabling apps to send full-screen intents.\n\nThe **Manage full screen intents** setting is in the **Settings** menu under\n**Special App Access**. With this UI, users can revoke this permission if needed.\n\nOEM requirements\n----------------\n\nIn Android 14, FSI permissions for apps are enabled by\ndefault. OEMs must specify which apps qualify for FSI permissions. OEMs must\nensure that third-party app stores set the initial grant states of FSI\npermissions for their apps using\n[`PackageInstaller.SessionParams`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams),\nspecifically with the [`PERMISSION_STATE_DEFAULT`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DEFAULT), [`PERMISSION_STATE_DENIED`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DENIED), and [`PERMISSION_STATE_GRANTED`](https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_GRANTED)\nparameters.\n\nValidation\n----------\n\nUse the CTS Verifier test in [`NotificationFullScreenIntentVerifierActivity.java`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/apps/CtsVerifier/src/com/android/cts/verifier/notifications/NotificationFullScreenIntentVerifierActivity.java),\nand the CTS test in [`NotificationManagerTest.java`](https://cs.android.com/android/platform/superproject/+/android-latest-release:cts/tests/app/src/android/app/cts/NotificationManagerTest.java;drc=ed156b1d4a7d91675dba1adb9191a92cf439dab0;l=148)\nto validate the FSI limits.\n\n### Manual tests\n\nFollow these steps to manually test FSI limits on your app:\n\n1. Declare [`USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT) in your app's `AndroidManifest.xml` file.\n2. Use [`ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT`](https://developer.android.com/reference/android/provider/Settings#ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT) to manage settings to turn FSI on or off.\n3. On your test phone, manually toggle the user permission for full-screen notifications as shown in Figure 1.\n4. Send an FSI notification.\n5. Validate the appearance of the full-screen notification for the following combinations of FSI permission and display modes:\n\n|--------------------|----------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------|-------------------------------|\n| **FSI permission** | **Unlocked screen** | **Locked screen** | **Off screen** | **Always-on display (AOD)** |\n| Granted by user | Persistent heads-up notification (HUN) with pill buttons | Launch FSI | Launch FSI | Launch FSI |\n| Denied by user | HUN with pill buttons for 60s | HUN with pill buttons shows up first in the list for 60s | AOD turns on, shows HUN with pill buttons for 60s | HUN with pill buttons for 60s |"]]