NotificationManagerCompat

Added in 1.1.0

class NotificationManagerCompat


Compatibility library for NotificationManager with fallbacks for older platforms.

To use this class, call the static function from to get a NotificationManagerCompat object, and then call one of its methods to post or cancel notifications.

Summary

Nested types

Helper class which encapsulates a Notification, its id, and optionally a tag, for use when batch-posting a number of notifications.

Constants

const String!
ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL"

Intent action to register for on a service to receive side channel notifications.

const String!
EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel"

Notification extras key: if set to true, the posted notification should use the side channel for delivery instead of using notification manager.

const Int

Default notification importance: shows everywhere, allowed to makes noise, but does not visually intrude.

const Int

Higher notification importance: shows everywhere, allowed to makes noise and peek.

const Int

Low notification importance: shows everywhere, but is not intrusive.

const Int

Highest notification importance: shows everywhere, allowed to makes noise, peek, and use full screen intents.

const Int

Min notification importance: only shows in the shade, below the fold.

const Int

A notification with no importance: shows nowhere, is blocked.

const Int

Value signifying that the user has not expressed an importance.

const Int

Interruption filter constant - Alarms only interruption filter - all notifications except those of category CATEGORY_ALARM are suppressed.

const Int

Interruption filter constant - Normal interruption filter - no notifications are suppressed.

const Int

Interruption filter constant - No interruptions filter - all notifications are suppressed and all audio streams (except those used for phone calls) and vibrations are muted.

const Int

Interruption filter constant - Priority interruption filter - all notifications are suppressed except those that match the priority criteria.

const Int

Interruption filter constant - returned when the value is unavailable for any reason.

Public functions

Boolean

Returns whether notifications from the calling package are not blocked.

Boolean

Returns whether the calling app can send fullscreen intents.

Unit
cancel(id: Int)

Cancel a previously shown notification.

Unit
cancel(tag: String?, id: Int)

Cancel a previously shown notification.

Unit

Cancel all previously shown notifications.

Unit

Creates a notification channel that notifications can be posted to.

Unit

Creates a notification channel that notifications can be posted to.

Unit

Creates a group container for NotificationChannel objects.

Unit

Creates a group container for NotificationChannel objects.

Unit

Creates multiple notification channel groups.

Unit

Creates multiple notification channel groups.

Unit

Creates multiple notification channels that different notifications can be posted to.

Unit

Creates multiple notification channels that different notifications can be posted to.

Unit

Deletes the given notification channel.

Unit

Deletes the given notification channel group, and all notification channels that belong to it.

Unit

Deletes notification channels for which ids are NOT given.

java-static NotificationManagerCompat
from(context: Context)

Get a NotificationManagerCompat instance for a provided context.

(Mutable)List<StatusBarNotification!>

Recover a list of active notifications: ones that have been posted by the calling app that have not yet been dismissed by the user or canceled by the app.

Int

Gets the current notification interruption filter.

java-static (Mutable)Set<String!>

Get the set of packages that have an enabled notification listener component within them.

Int

Returns the user specified importance for notifications from the calling package.

NotificationChannel?

Returns the notification channel settings for a given channel id.

NotificationChannel?
getNotificationChannel(channelId: String, conversationId: String)

Returns the notification channel settings for a given channel and conversation id.

NotificationChannelCompat?

Returns the notification channel settings for a given channel id.

NotificationChannelCompat?
getNotificationChannelCompat(channelId: String, conversationId: String)

Returns the notification channel settings for a given channel and conversation id.

NotificationChannelGroup?

Returns the notification channel group settings for a given channel group id.

NotificationChannelGroupCompat?

Returns the notification channel group settings for a given channel group id.

(Mutable)List<NotificationChannelGroup!>

Returns all notification channel groups belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

(Mutable)List<NotificationChannelGroupCompat!>

Returns all notification channel groups belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

(Mutable)List<NotificationChannel!>

Returns all notification channels belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

(Mutable)List<NotificationChannelCompat!>

Returns all notification channels belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

Unit
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
notify(
    notificationWithIdAndTags: (Mutable)List<NotificationManagerCompat.NotificationWithIdAndTag!>
)

Post a number of notifications, to be shown in the status bar, stream, etc.

Unit
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
notify(id: Int, notification: Notification)

Post a notification to be shown in the status bar, stream, etc.

Unit
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
notify(tag: String?, id: Int, notification: Notification)

Post a notification to be shown in the status bar, stream, etc.

Constants

ACTION_BIND_SIDE_CHANNEL

Added in 1.1.0
const val ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL": String!

Intent action to register for on a service to receive side channel notifications. The listening service must be in the same package as an enabled NotificationListenerService.

EXTRA_USE_SIDE_CHANNEL

Added in 1.1.0
const val EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel": String!

Notification extras key: if set to true, the posted notification should use the side channel for delivery instead of using notification manager.

IMPORTANCE_DEFAULT

Added in 1.1.0
const val IMPORTANCE_DEFAULT = 3: Int

Default notification importance: shows everywhere, allowed to makes noise, but does not visually intrude.

IMPORTANCE_HIGH

Added in 1.1.0
const val IMPORTANCE_HIGH = 4: Int

Higher notification importance: shows everywhere, allowed to makes noise and peek.

IMPORTANCE_LOW

Added in 1.1.0
const val IMPORTANCE_LOW = 2: Int

Low notification importance: shows everywhere, but is not intrusive.

IMPORTANCE_MAX

Added in 1.1.0
const val IMPORTANCE_MAX = 5: Int

Highest notification importance: shows everywhere, allowed to makes noise, peek, and use full screen intents.

IMPORTANCE_MIN

Added in 1.1.0
const val IMPORTANCE_MIN = 1: Int

Min notification importance: only shows in the shade, below the fold.

IMPORTANCE_NONE

Added in 1.1.0
const val IMPORTANCE_NONE = 0: Int

A notification with no importance: shows nowhere, is blocked.

IMPORTANCE_UNSPECIFIED

Added in 1.1.0
const val IMPORTANCE_UNSPECIFIED = -1000: Int

Value signifying that the user has not expressed an importance. This value is for persisting preferences, and should never be associated with an actual notification.

INTERRUPTION_FILTER_ALARMS

Added in 1.11.0
const val INTERRUPTION_FILTER_ALARMS = 4: Int

Interruption filter constant - Alarms only interruption filter - all notifications except those of category CATEGORY_ALARM are suppressed. Some audio streams are muted.

INTERRUPTION_FILTER_ALL

Added in 1.11.0
const val INTERRUPTION_FILTER_ALL = 1: Int

Interruption filter constant - Normal interruption filter - no notifications are suppressed.

INTERRUPTION_FILTER_NONE

Added in 1.11.0
const val INTERRUPTION_FILTER_NONE = 3: Int

Interruption filter constant - No interruptions filter - all notifications are suppressed and all audio streams (except those used for phone calls) and vibrations are muted.

INTERRUPTION_FILTER_PRIORITY

Added in 1.11.0
const val INTERRUPTION_FILTER_PRIORITY = 2: Int

Interruption filter constant - Priority interruption filter - all notifications are suppressed except those that match the priority criteria. Some audio streams are muted. See priorityCallSenders, priorityCategories, priorityMessageSenders to define or query this criteria. Users can additionally specify packages that can bypass this interruption filter.

INTERRUPTION_FILTER_UNKNOWN

Added in 1.11.0
const val INTERRUPTION_FILTER_UNKNOWN = 0: Int

Interruption filter constant - returned when the value is unavailable for any reason.

Public functions

areNotificationsEnabled

Added in 1.1.0
fun areNotificationsEnabled(): Boolean

Returns whether notifications from the calling package are not blocked.

canUseFullScreenIntent

Added in 1.12.0
fun canUseFullScreenIntent(): Boolean

Returns whether the calling app can send fullscreen intents.

Fullscreen intents were introduced in Android HONEYCOMB, where apps could always attach a full screen intent to their notification via setFullScreenIntent}.

Android Q introduced the USE_FULL_SCREEN_INTENT permission, where SystemUI will only show the full screen intent attached to a notification if the permission is declared in the manifest.

Starting from Android UPSIDE_DOWN_CAKE, apps may not have permission to use USE_FULL_SCREEN_INTENT. If the FSI permission is denied, SystemUI will show the notification as an expanded heads up notification on lockscreen.

To request access, add the USE_FULL_SCREEN_INTENT permission to your manifest, and use ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT to send the user to the settings page where they can grant your app the FSI permission.

cancel

Added in 1.1.0
fun cancel(id: Int): Unit

Cancel a previously shown notification.

Parameters
id: Int

the ID of the notification

cancel

Added in 1.1.0
fun cancel(tag: String?, id: Int): Unit

Cancel a previously shown notification.

Parameters
tag: String?

the string identifier of the notification.

id: Int

the ID of the notification

cancelAll

Added in 1.1.0
fun cancelAll(): Unit

Cancel all previously shown notifications.

createNotificationChannel

Added in 1.1.0
fun createNotificationChannel(channel: NotificationChannel): Unit

Creates a notification channel that notifications can be posted to. This can also be used to restore a deleted channel and to update an existing channel's name, description, group, and/or importance.

The importance of an existing channel will only be changed if the new importance is lower than the current value and the user has not altered any settings on this channel.

The group of an existing channel will only be changed if the channel does not already belong to a group. All other fields are ignored for channels that already exist. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
channel: NotificationChannel

the channel to create. Note that the created channel may differ from this value. If the provided channel is malformed, a RemoteException will be thrown.

createNotificationChannel

Added in 1.5.0
fun createNotificationChannel(channel: NotificationChannelCompat): Unit

Creates a notification channel that notifications can be posted to. This can also be used to restore a deleted channel and to update an existing channel's name, description, group, and/or importance.

The importance of an existing channel will only be changed if the new importance is lower than the current value and the user has not altered any settings on this channel.

The group of an existing channel will only be changed if the channel does not already belong to a group. All other fields are ignored for channels that already exist. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
channel: NotificationChannelCompat

the channel to create. Note that the created channel may differ from this value. If the provided channel is malformed, a RemoteException will be thrown.

createNotificationChannelGroup

Added in 1.1.0
fun createNotificationChannelGroup(group: NotificationChannelGroup): Unit

Creates a group container for NotificationChannel objects. This can be used to rename an existing group. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
group: NotificationChannelGroup

The group to create

createNotificationChannelGroup

Added in 1.5.0
fun createNotificationChannelGroup(group: NotificationChannelGroupCompat): Unit

Creates a group container for NotificationChannel objects. This can be used to rename an existing group. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
group: NotificationChannelGroupCompat

The group to create

createNotificationChannelGroups

Added in 1.1.0
fun createNotificationChannelGroups(
    groups: (Mutable)List<NotificationChannelGroup!>
): Unit

Creates multiple notification channel groups. See createNotificationChannelGroup. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
groups: (Mutable)List<NotificationChannelGroup!>

The list of groups to create

createNotificationChannelGroupsCompat

Added in 1.5.0
fun createNotificationChannelGroupsCompat(
    groups: (Mutable)List<NotificationChannelGroupCompat!>
): Unit

Creates multiple notification channel groups. See createNotificationChannelGroup. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
groups: (Mutable)List<NotificationChannelGroupCompat!>

The list of groups to create

createNotificationChannels

Added in 1.1.0
fun createNotificationChannels(
    channels: (Mutable)List<NotificationChannel!>
): Unit

Creates multiple notification channels that different notifications can be posted to. See createNotificationChannel. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
channels: (Mutable)List<NotificationChannel!>

the list of channels to attempt to create.

createNotificationChannelsCompat

Added in 1.5.0
fun createNotificationChannelsCompat(
    channels: (Mutable)List<NotificationChannelCompat!>
): Unit

Creates multiple notification channels that different notifications can be posted to. See createNotificationChannel. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
channels: (Mutable)List<NotificationChannelCompat!>

the list of channels to attempt to create.

deleteNotificationChannel

Added in 1.1.0
fun deleteNotificationChannel(channelId: String): Unit

Deletes the given notification channel.

If you create a new channel with this same id, the deleted channel will be un-deleted with all of the same settings it had before it was deleted. It doesn't do anything on older SDKs which don't support Notification Channels.

deleteNotificationChannelGroup

Added in 1.1.0
fun deleteNotificationChannelGroup(groupId: String): Unit

Deletes the given notification channel group, and all notification channels that belong to it. It doesn't do anything on older SDKs which don't support Notification Channels.

deleteUnlistedNotificationChannels

Added in 1.5.0
fun deleteUnlistedNotificationChannels(
    channelIds: (Mutable)Collection<String!>
): Unit

Deletes notification channels for which ids are NOT given. This will NOT delete channels which are conversation children of the given channels. It doesn't do anything on older SDKs which don't support Notification Channels.

Parameters
channelIds: (Mutable)Collection<String!>

the IDs of any channels which should NOT be deleted by this method.

from

Added in 1.1.0
java-static fun from(context: Context): NotificationManagerCompat

Get a NotificationManagerCompat instance for a provided context.

getActiveNotifications

Added in 1.11.0
fun getActiveNotifications(): (Mutable)List<StatusBarNotification!>

Recover a list of active notifications: ones that have been posted by the calling app that have not yet been dismissed by the user or canceled by the app.

StatusBarNotification object, including the original and supplied to (via and ) as well as a copy of the original object (via ).

From Q, will also return notifications you've posted as an app's notification delegate via notifyAsPackage.

Returns an empty list on LOLLIPOP_MR1 and earlier.

getCurrentInterruptionFilter

Added in 1.11.0
fun getCurrentInterruptionFilter(): Int

Gets the current notification interruption filter.

The interruption filter defines which notifications are allowed to interrupt the user (e.g. via sound &vibration) and is applied globally.

getEnabledListenerPackages

Added in 1.1.0
java-static fun getEnabledListenerPackages(context: Context): (Mutable)Set<String!>

Get the set of packages that have an enabled notification listener component within them.

getImportance

Added in 1.1.0
fun getImportance(): Int

Returns the user specified importance for notifications from the calling package.

Returns
Int

An importance level, such as IMPORTANCE_DEFAULT.

getNotificationChannel

Added in 1.1.0
fun getNotificationChannel(channelId: String): NotificationChannel?

Returns the notification channel settings for a given channel id. Returns null on older SDKs which don't support Notification Channels.

getNotificationChannel

Added in 1.5.0
fun getNotificationChannel(channelId: String, conversationId: String): NotificationChannel?

Returns the notification channel settings for a given channel and conversation id. Returns the channel for the channelId on older SDKs which don't support Conversations. Returns null on older SDKs which don't support Notification Channels.

getNotificationChannelCompat

Added in 1.5.0
fun getNotificationChannelCompat(channelId: String): NotificationChannelCompat?

Returns the notification channel settings for a given channel id. Returns null on older SDKs which don't support Notification Channels.

getNotificationChannelCompat

Added in 1.5.0
fun getNotificationChannelCompat(channelId: String, conversationId: String): NotificationChannelCompat?

Returns the notification channel settings for a given channel and conversation id. Returns the channel for the channelId on older SDKs which don't support Conversations. Returns null on older SDKs which don't support Notification Channels.

getNotificationChannelGroup

Added in 1.1.0
fun getNotificationChannelGroup(channelGroupId: String): NotificationChannelGroup?

Returns the notification channel group settings for a given channel group id. Returns null on older SDKs which don't support Notification Channels.

getNotificationChannelGroupCompat

Added in 1.5.0
fun getNotificationChannelGroupCompat(channelGroupId: String): NotificationChannelGroupCompat?

Returns the notification channel group settings for a given channel group id. Returns null on older SDKs which don't support Notification Channels.

getNotificationChannelGroups

Added in 1.1.0
fun getNotificationChannelGroups(): (Mutable)List<NotificationChannelGroup!>

Returns all notification channel groups belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

getNotificationChannelGroupsCompat

Added in 1.5.0
fun getNotificationChannelGroupsCompat(): (Mutable)List<NotificationChannelGroupCompat!>

Returns all notification channel groups belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

getNotificationChannels

Added in 1.1.0
fun getNotificationChannels(): (Mutable)List<NotificationChannel!>

Returns all notification channels belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

getNotificationChannelsCompat

Added in 1.5.0
fun getNotificationChannelsCompat(): (Mutable)List<NotificationChannelCompat!>

Returns all notification channels belonging to the calling app or an empty list on older SDKs which don't support Notification Channels.

notify

Added in 1.11.0
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
fun notify(
    notificationWithIdAndTags: (Mutable)List<NotificationManagerCompat.NotificationWithIdAndTag!>
): Unit

Post a number of notifications, to be shown in the status bar, stream, etc. Each notification will attempt to be posted in the order provided in the notificationWithIds list. Each notification must have a provided id and may have a provided tag. This is the preferred method for posting groups of notifications, to improve sound and animation behavior.

notify

Added in 1.1.0
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
fun notify(id: Int, notification: Notification): Unit

Post a notification to be shown in the status bar, stream, etc.

Parameters
id: Int

the ID of the notification

notification: Notification

the notification to post to the system

notify

Added in 1.1.0
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
fun notify(tag: String?, id: Int, notification: Notification): Unit

Post a notification to be shown in the status bar, stream, etc.

Parameters
tag: String?

the string identifier for a notification. Can be null.

id: Int

the ID of the notification. The pair (tag, id) must be unique within your app.

notification: Notification

the notification to post to the system