USE_FULL_SCREEN_INTENT on Android 14 and Google Play

Checked against Google's policy pages on .

  • android.permission.USE_FULL_SCREEN_INTENT

What does it allow?

A full-screen intent turns a notification into a screen that appears over everything else, even on a locked phone, the way an incoming call or an alarm does. USE_FULL_SCREEN_INTENT is what lets an app do that.

Until Android 14 any app could declare it and have it granted at install. Android's documentation now describes full-screen intents as meant for "extremely high-priority notifications demanding the user's immediate attention", and says the Play Store revokes the default grant for apps targeting Android 14 or higher that do not provide calling or alarms. Users can switch it on and off themselves.

Which apps does Google Play allow to use it?

For apps targeting Android 14 and higher, Google says: "Only apps whose core functionality is a high-priority use case of setting an alarm or receiving phone or video calls will be automatically granted the USE_FULL_SCREEN_INTENT permission." Other apps may still use it, but only after the user grants it.

Apps declare whether full-screen intents are core to them on the App content page in Play Console.

Why is it in my app?

Calling, VoIP and notification libraries declare it so their incoming-call screens work. If your app has no calls and no alarms, the permission is probably a library's.

To see every permission in your build and which ones may need a declaration, paste your merged manifest into the Play Console permission declaration checker.

What can I use instead?

For anything that is not a call or an alarm, use a normal high-priority notification. It still appears as a heads-up notification at the top of the screen without taking it over.

If a feature really needs the full screen, check NotificationManager.canUseFullScreenIntent() before relying on it, and when it returns false, send the user to the settings page with the ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT intent so they can grant it.

How do I remove it?

Add it to your own manifest with tools:node="remove". The manifest merge then leaves it out, whichever library declared it. In Flutter and React Native the file is android/app/src/main/AndroidManifest.xml.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" tools:node="remove" />
</manifest>

In Expo, block it in your app config instead:

{
  "expo": {
    "android": {
      "blockedPermissions": [
        "android.permission.USE_FULL_SCREEN_INTENT"
      ]
    }
  }
}

Then test the feature the library provides: if it needed the permission, that feature may stop working.

How do I declare it if I keep it?

Calling and alarm apps that target Android 14 or higher complete the full-screen intent declaration on the App content page. Other apps should either remove the permission or ask the user to grant it before relying on it.

Common questions

My app is not a calling or alarm app. Will full-screen intents work?
Only if the user grants the permission. By default, on Android 14 and higher, your notification shows as an ordinary heads-up notification instead.
Where is the full-screen intent declaration?
In Play Console under Monitor and improve, App content, alongside the foreground service declaration.

Sources

May we use analytics and ad measurement? Analytics (Vercel, and Ahrefs on our public pages) count page views without cookies. Ad measurement lets Google's tag on our public pages see which visits came from our Google ads, using a Google cookie. The site works the same either way. Cookie Policy · How Google uses data ·