S
Subhankar Bag
Guest
Full-Screen Intent (FSI) Notifications in Android 14 & 15: What Changed, Why It’s Breaking, and How to Fix It
![[TrendyMediaToday.com] Full-Screen Intent (FSI) Notifications in Android 14 & 15: What Changed, Why It’s Breaking, and… {file_size} {filename} [TrendyMediaToday.com] Full-Screen Intent (FSI) Notifications in Android 14 & 15: What Changed, Why It’s Breaking, and… {file_size} {filename}](https://cdn-images-1.medium.com/max/1024/1*6ZKcjyvtjo_wAYD1rpcEWw.png)
Android introduced Full-Screen Intent (FSI) notifications to allow apps to grab the user’s immediate attention — typically used by alarm apps or calling apps.
For example:
- Google Phone uses FSI for incoming calls
- Alarm Clock apps use FSI for wake-up alarms
- Emergency alert apps (fire, medical, SOS) may also rely on FSI
But starting with Android 14 (API 34), and continuing into Android 15, Google has tightened the rules around FSI. If your app isn’t prepared, your full-screen notifications may silently degrade into regular heads-up notifications — especially on Samsung and other OEM devices.
Let’s break this down.
What Changed in Android 14+
Previously, if you built a notification with a fullScreenIntent, it would just work when the device was locked. But now:
- FSI is restricted to critical use cases only: calling and alarm apps.
- Apps outside these categories do not automatically get FSI permission.
- Users must manually grant permission in Settings.
- Google Play requires developers to declare FSI use cases if their app falls into the calling/alarm category.
This means if you’re building, say, a delivery app that wants to pop up a screen when the driver arrives, your FSI intent will no longer work out-of-the-box.
What Reddit Devs Confirm
From the r/androiddev community:
“It works only when the device is locked (with password/pin/finger). In all other cases it shows a regular notification.”
“When the user is using their phone, those are shown as notification in top app bar.”
In short: FSI is now designed only for lock-screen emergencies.
Who is Affected?
- Alarm apps — If you don’t declare FSI use in Play Console, alarms won’t wake the screen.
- VoIP/call apps — Incoming calls may just show a banner instead of a full call screen.
- Emergency apps — Fire, SOS, or health monitoring apps that relied on FSI may fail to alert properly.
- Custom business apps (e.g., logistics, field operations) — Any “urgent” full-screen notification flow will be downgraded.
How to Check if FSI is Allowed
Android 14+ introduced a runtime check:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
val notificationManager = context.getSystemService(NotificationManager::class.java)
if (notificationManager.canUseFullScreenIntent()) {
// Safe to send FSI
sendFullScreenNotification()
} else {
// Permission not granted
showSnackBarAndRedirectToSettings()
}
}
Redirecting Users to FSI Settings
Use the new ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT intent (Android 14+):
fun goToFullScreenIntentSettings(context: Context) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
val intent = Intent(Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT).apply {
data = Uri.fromParts("package", context.packageName, null)
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
context.startActivity(intent)
} else {
// Fallback: old notification settings
val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply {
putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName)
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
context.startActivity(intent)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
This way, when the user taps “Enable full-screen notifications” on your Snackbar or dialog, they’ll land in the correct settings page.
Strategies to Make FSI Work Perfectly
Declare your use case properly
- If you’re a calling or alarm app → declare FSI in Play Console so Google approves your use.
- If not → gracefully handle fallback scenarios (don’t depend 100% on FSI).
Runtime check with fallback
- Always check notificationManager.canUseFullScreenIntent().
- If false, show a clear UI prompt (SnackBar, dialog) that explains why user needs to enable it.
Guide users to settings
- Use ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT to deep-link directly to the toggle.
Don’t abuse FSI
- Avoid spamming users with FSI for non-critical events (food delivery, offers, etc.).
- Google Play may reject your app if you misuse this.
Test on OEMs like Samsung
- Samsung, Xiaomi, etc. often add extra restrictions on background launch.
- Verify behavior on both locked and unlocked screens.
Example: Updated Notification Channel Setup
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
val notificationManager = getSystemService(NotificationManager::class.java)
if (!notificationManager.canUseFullScreenIntent()) {
// Show Snackbar + Settings redirect
fullScreenNotificationActionNotEnabled()
} else {
permissionUtil.getPermission(Manifest.permission.USE_FULL_SCREEN_INTENT) { granted ->
if (!granted) fullScreenNotificationActionNotEnabled()
}
}
}
TL;DR
- FSI is now gated in Android 14+ — only alarms & calls get it automatically.
- Other apps must rely on user consent (Settings → Full-Screen Notifications).
- Reddit devs confirm FSI works only on the lock screen.
- Best practice: Check at runtime → prompt user → fallback gracefully.


Continue reading...