Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/app/NotificationManager#nestedclasses) \| [Constants](https://developer.android.com/reference/android/app/NotificationManager#constants) \| [Methods](https://developer.android.com/reference/android/app/NotificationManager#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/NotificationManager#inhmethods)

# NotificationManager

*** ** * ** ***

` public class NotificationManager `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.NotificationManager |

<br />

*** ** * ** ***

Class to notify the user of events that happen. This is how you tell the user that something has happened in the background.

Notifications can take different forms:

- A persistent icon that goes in the status bar and is accessible through the launcher, (when the user selects it, a designated Intent can be launched),
- Turning on or flashing LEDs on the device, or
- Alerting the user by flashing the backlight, playing a sound, or vibrating.

Each of the notify methods takes an int id parameter and optionally a `https://developer.android.com/reference/java/lang/String` tag parameter, which may be `null`. These parameters are used to form a pair (tag, id), or (`null`, id) if tag is unspecified. This pair identifies this notification from your app to the system, so that pair should be unique within your app. If you call one of the notify methods with a (tag, id) pair that is currently active and a new set of notification parameters, it will be updated. For example, if you pass a new status bar icon, the old icon in the status bar will be replaced with the new one. This is also the same tag and id you pass to the `https://developer.android.com/reference/android/app/NotificationManager#cancel(int)` or `https://developer.android.com/reference/android/app/NotificationManager#cancel(java.lang.String,%20int)` method to clear this notification.

### Developer Guides

For a guide to creating notifications, read the [Status Bar Notifications](https://developer.android.com/guide/topics/ui/notifiers/notifications) developer guide.

<br />

**See also:**

- `https://developer.android.com/reference/android/app/Notification`

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/app/NotificationManager.Policy` Notification policy configuration. |

| ### Constants ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_APP_BLOCK_STATE_CHANGED` Intent that is broadcast when an application is blocked or unblocked. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE` Activity Action: Launch an Automatic Zen Rule configuration screen Input: Optionally, `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_RULE_ID`, if the configuration screen for an existing rule should be displayed. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED` Intent that is broadcast when the status of an `https://developer.android.com/reference/android/app/AutomaticZenRule` has changed. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED` Intent that is broadcast when the state of `https://developer.android.com/reference/android/app/NotificationManager#getConsolidatedNotificationPolicy()` changes. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_INTERRUPTION_FILTER_CHANGED` Intent that is broadcast when the state of getCurrentInterruptionFilter() changes. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED` Intent that is broadcast when a `https://developer.android.com/reference/android/app/NotificationChannel` is blocked (when `https://developer.android.com/reference/android/app/NotificationChannel#getImportance()` is `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_NONE`) or unblocked (when `https://developer.android.com/reference/android/app/NotificationChannel#getImportance()` is anything other than `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_NONE`). |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED` Intent that is broadcast when a `https://developer.android.com/reference/android/app/NotificationChannelGroup` is `https://developer.android.com/reference/android/app/NotificationChannelGroup#isBlocked()` or unblocked. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED` Intent that is broadcast when the state of `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()` changes. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_POLICY_CHANGED` Intent that is broadcast when the state of `https://developer.android.com/reference/android/app/NotificationManager#getNotificationPolicy()` changes. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_ACTIVATED` Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule has been activated by the user or cross device sync. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_DEACTIVATED` Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule has been deactivated ("snoozed") by the user. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_DISABLED` Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule currently exists but is disabled. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_ENABLED` Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule currently exists and is enabled. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_REMOVED` Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule has been deleted. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_UNKNOWN` Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the current status of the rule is unknown at your target sdk version, and you should continue to provide state changes via `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)`. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_ALL` Indicates that all bubbles are allowed from the app. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_NONE` Indicates that the no bubbles are allowed from the app. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_SELECTED` Indicates that only notifications selected by the user will appear as bubbles. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_RULE_ID` Used as an optional string extra on `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE` intents. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_ID` String extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED` containing the id of the `https://developer.android.com/reference/android/app/AutomaticZenRule` (see `https://developer.android.com/reference/android/app/NotificationManager#addAutomaticZenRule(android.app.AutomaticZenRule)`) that has changed. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` Integer extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED` containing the state of the `https://developer.android.com/reference/android/app/AutomaticZenRule`. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_BLOCKED_STATE` Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED` or `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED` containing the new blocked state as a boolean. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_NOTIFICATION_CHANNEL_GROUP_ID` Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED` containing the id of the `https://developer.android.com/reference/android/app/NotificationChannelGroup` which has a new blocked state. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_NOTIFICATION_CHANNEL_ID` Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED` containing the id of the `https://developer.android.com/reference/android/app/NotificationChannel` which has a new blocked state. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_NOTIFICATION_POLICY` Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_POLICY_CHANGED` and `https://developer.android.com/reference/android/app/NotificationManager#ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED` containing the new `https://developer.android.com/reference/android/app/NotificationManager.Policy` value. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_DEFAULT` Default notification importance: shows everywhere, makes noise, but does not visually intrude. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_HIGH` Higher notification importance: shows everywhere, makes noise and peeks. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_LOW` Low notification importance: Shows in the shade, and potentially in the status bar (see `https://developer.android.com/reference/android/app/NotificationManager#shouldHideSilentStatusBarIcons()`), but is not audibly intrusive. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_MAX` Higher notification importance: shows everywhere, makes noise and peeks. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_MIN` Min notification importance: only shows in the shade, below the fold. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_NONE` A notification with no importance: does not show in the shade. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_UNSPECIFIED` Value signifying that the user has not expressed an importance. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALARMS` `https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - Alarms only interruption filter - all notifications except those of category `https://developer.android.com/reference/android/app/Notification#CATEGORY_ALARM` are suppressed. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALL` `https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - Normal interruption filter - no notifications are suppressed. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_NONE` `https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - No interruptions filter - all notifications are suppressed and all audio streams (except those used for phone calls) and vibrations are muted. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_PRIORITY` `https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - Priority interruption filter - all notifications are suppressed except those that match the priority criteria. |
| `int` | `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_UNKNOWN` `https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - returned when the value is unavailable for any reason. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#META_DATA_AUTOMATIC_RULE_TYPE` A required `meta-data` tag for activities that handle `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE`. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/NotificationManager#META_DATA_RULE_INSTANCE_LIMIT` An optional `meta-data` tag for activities that handle `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE`. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/app/NotificationManager#addAutomaticZenRule(android.app.AutomaticZenRule)(https://developer.android.com/reference/android/app/AutomaticZenRule automaticZenRule) ` Creates the given zen rule. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#areAutomaticZenRulesUserManaged()() ` Returns true if users can independently and fully manage `https://developer.android.com/reference/android/app/AutomaticZenRule` rules. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#areBubblesAllowed()() ` *This method was deprecated in API level 31. use `https://developer.android.com/reference/android/app/NotificationManager#getBubblePreference()` instead.* |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#areBubblesEnabled()() ` Returns whether bubbles are enabled at the feature level for the current user. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#areNotificationsEnabled()() ` Returns whether notifications from the calling package are enabled. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#areNotificationsPaused()() ` Returns whether notifications from this package are temporarily hidden. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#canNotifyAsPackage(java.lang.String)(https://developer.android.com/reference/java/lang/String pkg) ` Returns whether you are allowed to post notifications on behalf of a given package, with `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#canPostPromotedNotifications()() ` Returns whether the calling app's properly formatted notifications can appear in a promoted format, which may result in higher ranking, appearances on additional surfaces, and richer presentation. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#canUseFullScreenIntent()() ` Returns whether the calling app can send fullscreen intents. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#cancel(int)(int id) ` Cancels a previously posted notification. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#cancel(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String tag, int id) ` Cancels a previously posted notification. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#cancelAll()() ` Cancel all previously shown notifications. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#cancelAsPackage(java.lang.String,%20java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String targetPackage, https://developer.android.com/reference/java/lang/String tag, int id) ` Cancels a previously posted notification. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#createNotificationChannel(android.app.NotificationChannel)(https://developer.android.com/reference/android/app/NotificationChannel channel) ` Creates a notification channel that notifications can be posted to. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#createNotificationChannelGroup(android.app.NotificationChannelGroup)(https://developer.android.com/reference/android/app/NotificationChannelGroup group) ` Creates a group container for `https://developer.android.com/reference/android/app/NotificationChannel` objects. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#createNotificationChannelGroups(java.util.List<android.app.NotificationChannelGroup>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/NotificationChannelGroup> groups) ` Creates multiple notification channel groups. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#createNotificationChannels(java.util.List<android.app.NotificationChannel>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/NotificationChannel> channels) ` Creates multiple notification channels that different notifications can be posted to. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#deleteNotificationChannel(java.lang.String)(https://developer.android.com/reference/java/lang/String channelId) ` Deletes the given notification channel. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#deleteNotificationChannelGroup(java.lang.String)(https://developer.android.com/reference/java/lang/String groupId) ` Deletes the given notification channel group, and all notification channels that belong to it. |
| ` https://developer.android.com/reference/android/service/notification/StatusBarNotification` | ` https://developer.android.com/reference/android/app/NotificationManager#getActiveNotifications()() ` 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 `https://developer.android.com/reference/android/app/NotificationManager#cancel(java.lang.String,%20int)`ed by the app. |
| ` https://developer.android.com/reference/android/app/AutomaticZenRule` | ` https://developer.android.com/reference/android/app/NotificationManager#getAutomaticZenRule(java.lang.String)(https://developer.android.com/reference/java/lang/String id) ` Returns the AutomaticZenRule with the given id, if it exists and the caller has access. |
| ` int` | ` https://developer.android.com/reference/android/app/NotificationManager#getAutomaticZenRuleState(java.lang.String)(https://developer.android.com/reference/java/lang/String id) ` Returns the current activation state of an `https://developer.android.com/reference/android/app/AutomaticZenRule`. |
| ` https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/android/app/AutomaticZenRule>` | ` https://developer.android.com/reference/android/app/NotificationManager#getAutomaticZenRules()() ` Returns AutomaticZenRules owned by the caller. |
| ` int` | ` https://developer.android.com/reference/android/app/NotificationManager#getBubblePreference()() ` Gets the bubble preference for the app. |
| ` https://developer.android.com/reference/android/app/NotificationManager.Policy` | ` https://developer.android.com/reference/android/app/NotificationManager#getConsolidatedNotificationPolicy()() ` Returns the currently applied notification policy. |
| ` final int` | ` https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()() ` Gets the current notification interruption filter. |
| ` int` | ` https://developer.android.com/reference/android/app/NotificationManager#getImportance()() ` Returns the user specified importance for notifications from the calling package. |
| ` https://developer.android.com/reference/android/app/NotificationChannel` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannel(java.lang.String)(https://developer.android.com/reference/java/lang/String channelId) ` Returns the notification channel settings for a given channel id. |
| ` https://developer.android.com/reference/android/app/NotificationChannel` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannel(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String channelId, https://developer.android.com/reference/java/lang/String conversationId) ` Returns the notification channel settings for a given channel and `https://developer.android.com/reference/android/content/pm/ShortcutInfo#getId()`. |
| ` https://developer.android.com/reference/android/app/NotificationChannelGroup` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannelGroup(java.lang.String)(https://developer.android.com/reference/java/lang/String channelGroupId) ` Returns the notification channel group settings for a given channel group id. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/NotificationChannelGroup>` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannelGroups()() ` Returns all notification channel groups belonging to the calling app. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/NotificationChannel>` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannels()() ` Returns all notification channels belonging to the calling package. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationDelegate()() ` Returns the `https://developer.android.com/reference/android/app/NotificationManager#setNotificationDelegate(java.lang.String)` that can post notifications on your behalf, if there currently is one. |
| ` https://developer.android.com/reference/android/app/NotificationManager.Policy` | ` https://developer.android.com/reference/android/app/NotificationManager#getNotificationPolicy()() ` Gets the current user-specified default notification policy. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#isNotificationListenerAccessGranted(android.content.ComponentName)(https://developer.android.com/reference/android/content/ComponentName listener) ` Checks whether the user has approved a given `https://developer.android.com/reference/android/service/notification/NotificationListenerService`. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()() ` Checks the ability to modify Notification Policy for the calling package. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#matchesCallFilter(android.net.Uri)(https://developer.android.com/reference/android/net/Uri uri) ` Returns whether a call from the provided URI is permitted to notify the user. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#notify(int,%20android.app.Notification)(int id, https://developer.android.com/reference/android/app/Notification notification) ` Post a notification to be shown in the status bar. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#notify(java.lang.String,%20int,%20android.app.Notification)(https://developer.android.com/reference/java/lang/String tag, int id, https://developer.android.com/reference/android/app/Notification notification) ` Posts a notification to be shown in the status bar. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)(https://developer.android.com/reference/java/lang/String targetPackage, https://developer.android.com/reference/java/lang/String tag, int id, https://developer.android.com/reference/android/app/Notification notification) ` Posts a notification as a specified package to be shown in the status bar. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#removeAutomaticZenRule(java.lang.String)(https://developer.android.com/reference/java/lang/String id) ` Deletes the automatic zen rule with the given id. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)(https://developer.android.com/reference/java/lang/String id, https://developer.android.com/reference/android/service/notification/Condition condition) ` Informs the notification manager that the state of an `https://developer.android.com/reference/android/app/AutomaticZenRule` has changed. |
| ` final void` | ` https://developer.android.com/reference/android/app/NotificationManager#setInterruptionFilter(int)(int interruptionFilter) ` Sets the current notification interruption filter. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#setNotificationDelegate(java.lang.String)(https://developer.android.com/reference/java/lang/String delegate) ` Allows a package to post notifications on your behalf using `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`. |
| ` void` | ` https://developer.android.com/reference/android/app/NotificationManager#setNotificationPolicy(android.app.NotificationManager.Policy)(https://developer.android.com/reference/android/app/NotificationManager.Policy policy) ` Sets the current notification policy (which applies when `https://developer.android.com/reference/android/app/NotificationManager#setInterruptionFilter(int)` is called with the `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_PRIORITY` value). |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#shouldHideSilentStatusBarIcons()() ` Returns whether the user wants silent notifications (see `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_LOW` to appear in the status bar. |
| ` boolean` | ` https://developer.android.com/reference/android/app/NotificationManager#updateAutomaticZenRule(java.lang.String,%20android.app.AutomaticZenRule)(https://developer.android.com/reference/java/lang/String id, https://developer.android.com/reference/android/app/AutomaticZenRule automaticZenRule) ` Updates the given zen rule. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### ACTION_APP_BLOCK_STATE_CHANGED

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_APP_BLOCK_STATE_CHANGED
```

Intent that is broadcast when an application is blocked or unblocked. This broadcast is only sent to the app whose block state has changed. Input: nothing Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_BLOCKED_STATE`

<br />

Constant Value: "android.app.action.APP_BLOCK_STATE_CHANGED"

### ACTION_AUTOMATIC_ZEN_RULE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_AUTOMATIC_ZEN_RULE
```

Activity Action: Launch an Automatic Zen Rule configuration screen

Input: Optionally, `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_RULE_ID`, if the configuration screen for an existing rule should be displayed. If the rule id is missing or null, apps should display a configuration screen where users can create a new instance of the rule.

Output: Nothing

You can have multiple activities handling this intent, if you support multiple `https://developer.android.com/reference/android/app/AutomaticZenRule`. In order for the system to properly display all of your rule types so that users can create new instances or configure existing ones, you need to add some extra metadata (`https://developer.android.com/reference/android/app/NotificationManager#META_DATA_AUTOMATIC_RULE_TYPE`) to your activity tag in your manifest. If you'd like to limit the number of rules a user can create from this flow, you can additionally optionally include `https://developer.android.com/reference/android/app/NotificationManager#META_DATA_RULE_INSTANCE_LIMIT`. For example,

        <meta-data
            android:name="android.service.zen.automatic.ruleType"
            android:value="@string/my_condition_rule" />
        <meta-data
            android:name="android.service.zen.automatic.ruleInstanceLimit"
            android:value="1" />
        
<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/app/NotificationManager#addAutomaticZenRule(android.app.AutomaticZenRule)`

Constant Value: "android.app.action.AUTOMATIC_ZEN_RULE"

### ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED
```

Intent that is broadcast when the status of an `https://developer.android.com/reference/android/app/AutomaticZenRule` has changed.

Use this to know whether you need to continue monitor to device state in order to provide up-to-date states (with `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)`) for this rule.
Input: nothing Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_ID` Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS`

<br />

<br />

Constant Value: "android.app.action.AUTOMATIC_ZEN_RULE_STATUS_CHANGED"

### ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED
```

Intent that is broadcast when the state of `https://developer.android.com/reference/android/app/NotificationManager#getConsolidatedNotificationPolicy()` changes.

This broadcast is only sent to registered receivers and receivers in packages that have been granted Notification Policy access (see `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`).

<br />

Constant Value: "android.app.action.CONSOLIDATED_NOTIFICATION_POLICY_CHANGED"

### ACTION_INTERRUPTION_FILTER_CHANGED

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_INTERRUPTION_FILTER_CHANGED
```

Intent that is broadcast when the state of getCurrentInterruptionFilter() changes.

This broadcast is only sent to registered receivers and (starting from `https://developer.android.com/reference/android/os/Build.VERSION_CODES#Q`) receivers in packages that have been granted Do Not Disturb access (see `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`).

<br />

Constant Value: "android.app.action.INTERRUPTION_FILTER_CHANGED"

### ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED
```

Intent that is broadcast when a `https://developer.android.com/reference/android/app/NotificationChannel` is blocked (when `https://developer.android.com/reference/android/app/NotificationChannel#getImportance()` is `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_NONE`) or unblocked (when `https://developer.android.com/reference/android/app/NotificationChannel#getImportance()` is anything other than `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_NONE`). This broadcast is only sent to the app that owns the channel that has changed. Input: nothing Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_NOTIFICATION_CHANNEL_ID` Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_BLOCKED_STATE`

<br />

Constant Value: "android.app.action.NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED"

### ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED
```

Intent that is broadcast when a `https://developer.android.com/reference/android/app/NotificationChannelGroup` is `https://developer.android.com/reference/android/app/NotificationChannelGroup#isBlocked()` or unblocked. This broadcast is only sent to the app that owns the channel group that has changed. Input: nothing Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_NOTIFICATION_CHANNEL_GROUP_ID` Output: `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_BLOCKED_STATE`

<br />

Constant Value: "android.app.action.NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED"

### ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED
```

Intent that is broadcast when the state of `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()` changes. This broadcast is only sent to registered receivers, and only to the apps that have changed.

<br />

Constant Value: "android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED"

### ACTION_NOTIFICATION_POLICY_CHANGED

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String ACTION_NOTIFICATION_POLICY_CHANGED
```

Intent that is broadcast when the state of `https://developer.android.com/reference/android/app/NotificationManager#getNotificationPolicy()` changes.

This broadcast is only sent to registered receivers and (starting from `https://developer.android.com/reference/android/os/Build.VERSION_CODES#Q`) receivers in packages that have been granted Do Not Disturb access (see `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`).

Starting with `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM`, most calls to `https://developer.android.com/reference/android/app/NotificationManager#setNotificationPolicy(android.app.NotificationManager.Policy)` will update the app's implicit rule policy instead of the global policy, so this broadcast will be sent much less frequently.

<br />

Constant Value: "android.app.action.NOTIFICATION_POLICY_CHANGED"

### AUTOMATIC_RULE_STATUS_ACTIVATED

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int AUTOMATIC_RULE_STATUS_ACTIVATED
```

Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule has been activated by the user or cross device sync. Sent from `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM`. If the rule owner has a mode that includes a DND component, the rule owner should activate any extra behavior that's part of that mode in response to this broadcast.

<br />

Constant Value: 4 (0x00000004)

### AUTOMATIC_RULE_STATUS_DEACTIVATED

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int AUTOMATIC_RULE_STATUS_DEACTIVATED
```

Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule has been deactivated ("snoozed") by the user. The rule will not return to an activated state until the app calls `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)` with `https://developer.android.com/reference/android/service/notification/Condition#STATE_FALSE` (either immediately or when the trigger criteria is no longer met) and then `https://developer.android.com/reference/android/service/notification/Condition#STATE_TRUE` when the trigger criteria is freshly met, or when the user re-activates it.

<br />

Constant Value: 5 (0x00000005)

### AUTOMATIC_RULE_STATUS_DISABLED

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int AUTOMATIC_RULE_STATUS_DISABLED
```

Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule currently exists but is disabled. You do not need to continue to provide state changes via `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)` until the rule is reenabled.

<br />

Constant Value: 2 (0x00000002)

### AUTOMATIC_RULE_STATUS_ENABLED

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int AUTOMATIC_RULE_STATUS_ENABLED
```

Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule currently exists and is enabled. You should continue to provide state changes via `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)`.

<br />

Constant Value: 1 (0x00000001)

### AUTOMATIC_RULE_STATUS_REMOVED

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int AUTOMATIC_RULE_STATUS_REMOVED
```

Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the given rule has been deleted. Further calls to `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)` will be ignored.

<br />

Constant Value: 3 (0x00000003)

### AUTOMATIC_RULE_STATUS_UNKNOWN

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int AUTOMATIC_RULE_STATUS_UNKNOWN
```

Constant value for `https://developer.android.com/reference/android/app/NotificationManager#EXTRA_AUTOMATIC_ZEN_RULE_STATUS` - the current status of the rule is unknown at your target sdk version, and you should continue to provide state changes via `https://developer.android.com/reference/android/app/NotificationManager#setAutomaticZenRuleState(java.lang.String,%20android.service.notification.Condition)`.

<br />

Constant Value: -1 (0xffffffff)

### BUBBLE_PREFERENCE_ALL

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BUBBLE_PREFERENCE_ALL
```

Indicates that all bubbles are allowed from the app. If the app sends bubbles, the bubble will appear along with the notification.

<br />

Constant Value: 1 (0x00000001)

### BUBBLE_PREFERENCE_NONE

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BUBBLE_PREFERENCE_NONE
```

Indicates that the no bubbles are allowed from the app. If the app sends bubbles, only the notification will appear. The notification will have an affordance allowing the user to bubble it. If the user selects this affordance, that notification is approved to bubble and the apps' bubble preference will be upgraded to `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_SELECTED`.

<br />

Constant Value: 0 (0x00000000)

### BUBBLE_PREFERENCE_SELECTED

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int BUBBLE_PREFERENCE_SELECTED
```

Indicates that only notifications selected by the user will appear as bubbles. If the app sends bubbles that haven't been selected, only the notification appear. If the bubble has been approved by the user, it will appear along with the notification.

<br />

Constant Value: 2 (0x00000002)

### EXTRA_AUTOMATIC_RULE_ID

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_AUTOMATIC_RULE_ID
```

Used as an optional string extra on `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE` intents. If provided, contains the id of the `https://developer.android.com/reference/android/app/AutomaticZenRule` (as returned from `https://developer.android.com/reference/android/app/NotificationManager#addAutomaticZenRule(android.app.AutomaticZenRule)`) for which configuration settings should be displayed.

<br />

Constant Value: "android.app.extra.AUTOMATIC_RULE_ID"

### EXTRA_AUTOMATIC_ZEN_RULE_ID

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_AUTOMATIC_ZEN_RULE_ID
```

String extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED` containing the id of the `https://developer.android.com/reference/android/app/AutomaticZenRule` (see `https://developer.android.com/reference/android/app/NotificationManager#addAutomaticZenRule(android.app.AutomaticZenRule)`) that has changed.

<br />

Constant Value: "android.app.extra.AUTOMATIC_ZEN_RULE_ID"

### EXTRA_AUTOMATIC_ZEN_RULE_STATUS

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_AUTOMATIC_ZEN_RULE_STATUS
```

Integer extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED` containing the state of the `https://developer.android.com/reference/android/app/AutomaticZenRule`.

The value will be one of `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_ENABLED`, `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_DISABLED`, `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_REMOVED`, `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_ACTIVATED`, `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_DEACTIVATED`, or `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_UNKNOWN`.

Note that the `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_ACTIVATED` and `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_DEACTIVATED` statuses are only sent to packages targeting `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM` and above; apps targeting a lower SDK version will be sent `https://developer.android.com/reference/android/app/NotificationManager#AUTOMATIC_RULE_STATUS_UNKNOWN` in their place instead.

<br />

Constant Value: "android.app.extra.AUTOMATIC_ZEN_RULE_STATUS"

### EXTRA_BLOCKED_STATE

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_BLOCKED_STATE
```

Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED` or `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED` containing the new blocked state as a boolean. The value will be `true` if this channel or group is now blocked and `false` if this channel or group is now unblocked.

<br />

Constant Value: "android.app.extra.BLOCKED_STATE"

### EXTRA_NOTIFICATION_CHANNEL_GROUP_ID

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_NOTIFICATION_CHANNEL_GROUP_ID
```

Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED` containing the id of the `https://developer.android.com/reference/android/app/NotificationChannelGroup` which has a new blocked state. The value will be the `https://developer.android.com/reference/android/app/NotificationChannelGroup#getId()` of the group.

<br />

Constant Value: "android.app.extra.NOTIFICATION_CHANNEL_GROUP_ID"

### EXTRA_NOTIFICATION_CHANNEL_ID

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_NOTIFICATION_CHANNEL_ID
```

Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED` containing the id of the `https://developer.android.com/reference/android/app/NotificationChannel` which has a new blocked state. The value will be the `https://developer.android.com/reference/android/app/NotificationChannel#getId()` of the channel.

<br />

Constant Value: "android.app.extra.NOTIFICATION_CHANNEL_ID"

### EXTRA_NOTIFICATION_POLICY

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EXTRA_NOTIFICATION_POLICY
```

Extra for `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_POLICY_CHANGED` and `https://developer.android.com/reference/android/app/NotificationManager#ACTION_CONSOLIDATED_NOTIFICATION_POLICY_CHANGED` containing the new `https://developer.android.com/reference/android/app/NotificationManager.Policy` value.

<br />

Constant Value: "android.app.extra.NOTIFICATION_POLICY"

### IMPORTANCE_DEFAULT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_DEFAULT
```

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

<br />

Constant Value: 3 (0x00000003)

### IMPORTANCE_HIGH

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_HIGH
```

Higher notification importance: shows everywhere, makes noise and peeks. May use full screen intents.

<br />

Constant Value: 4 (0x00000004)

### IMPORTANCE_LOW

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_LOW
```

Low notification importance: Shows in the shade, and potentially in the status bar (see `https://developer.android.com/reference/android/app/NotificationManager#shouldHideSilentStatusBarIcons()`), but is not audibly intrusive.

<br />

Constant Value: 2 (0x00000002)

### IMPORTANCE_MAX

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_MAX
```

Higher notification importance: shows everywhere, makes noise and peeks. May use full screen intents. May have elevated prominence in appearance or shade ranking. Usage is reserved by OS; app usage is capped at `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_HIGH`.

<br />

Constant Value: 5 (0x00000005)

### IMPORTANCE_MIN

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_MIN
```

Min notification importance: only shows in the shade, below the fold. This should not be used with `https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification)` since a foreground service is supposed to be something the user cares about so it does not make semantic sense to mark its notification as minimum importance. If you do this as of Android version `https://developer.android.com/reference/android/os/Build.VERSION_CODES#O`, the system will show a higher-priority notification about your app running in the background.

<br />

Constant Value: 1 (0x00000001)

### IMPORTANCE_NONE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_NONE
```

A notification with no importance: does not show in the shade.

<br />

Constant Value: 0 (0x00000000)

### IMPORTANCE_UNSPECIFIED

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int IMPORTANCE_UNSPECIFIED
```

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.

<br />

Constant Value: -1000 (0xfffffc18)

### INTERRUPTION_FILTER_ALARMS

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERRUPTION_FILTER_ALARMS
```

`https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - Alarms only interruption filter - all notifications except those of category `https://developer.android.com/reference/android/app/Notification#CATEGORY_ALARM` are suppressed. Some audio streams are muted.

<br />

Constant Value: 4 (0x00000004)

### INTERRUPTION_FILTER_ALL

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERRUPTION_FILTER_ALL
```

`https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - Normal interruption filter - no notifications are suppressed.

<br />

Constant Value: 1 (0x00000001)

### INTERRUPTION_FILTER_NONE

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERRUPTION_FILTER_NONE
```

`https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - No interruptions filter - all notifications are suppressed and all audio streams (except those used for phone calls) and vibrations are muted.

<br />

Constant Value: 3 (0x00000003)

### INTERRUPTION_FILTER_PRIORITY

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERRUPTION_FILTER_PRIORITY
```

`https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - Priority interruption filter - all notifications are suppressed except those that match the priority criteria. Some audio streams are muted. See `https://developer.android.com/reference/android/app/NotificationManager.Policy#priorityCallSenders`, `https://developer.android.com/reference/android/app/NotificationManager.Policy#priorityCategories`, `https://developer.android.com/reference/android/app/NotificationManager.Policy#priorityMessageSenders` to define or query this criteria. Users can additionally specify packages that can bypass this interruption filter.

<br />

Constant Value: 2 (0x00000002)

### INTERRUPTION_FILTER_UNKNOWN

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERRUPTION_FILTER_UNKNOWN
```

`https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` constant - returned when the value is unavailable for any reason.

<br />

Constant Value: 0 (0x00000000)

### META_DATA_AUTOMATIC_RULE_TYPE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String META_DATA_AUTOMATIC_RULE_TYPE
```

A required `meta-data` tag for activities that handle `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE`. This tag should contain a localized name of the type of the zen rule provided by the activity.

<br />

Constant Value: "android.service.zen.automatic.ruleType"

### META_DATA_RULE_INSTANCE_LIMIT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String META_DATA_RULE_INSTANCE_LIMIT
```

An optional `meta-data` tag for activities that handle `https://developer.android.com/reference/android/app/NotificationManager#ACTION_AUTOMATIC_ZEN_RULE`. This tag should contain the maximum number of rule instances that can be created for this rule type. Omit or enter a value \<= 0 to allow unlimited instances.

<br />

Constant Value: "android.service.zen.automatic.ruleInstanceLimit"

## Public methods

### addAutomaticZenRule

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String addAutomaticZenRule (AutomaticZenRule automaticZenRule)
```

Creates the given zen rule.

Throws a SecurityException if policy access is not granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

<br />

| Parameters ||
|---|---|
| `automaticZenRule` | `AutomaticZenRule`: the rule to create. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | The id of the newly created rule; null if the rule could not be created. <br /> |

### areAutomaticZenRulesUserManaged

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean areAutomaticZenRulesUserManaged ()
```

Returns true if users can independently and fully manage `https://developer.android.com/reference/android/app/AutomaticZenRule` rules. This includes the ability to independently activate/deactivate rules and overwrite/freeze the behavior (policy) of the rule when activated.

If this method returns true, calls to `https://developer.android.com/reference/android/app/NotificationManager#updateAutomaticZenRule(java.lang.String,%20android.app.AutomaticZenRule)` may fail and apps should defer rule management to system settings/uis via `https://developer.android.com/reference/android/provider/Settings#ACTION_AUTOMATIC_ZEN_RULE_SETTINGS`.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### areBubblesAllowed

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean areBubblesAllowed ()
```

<br />

**This method was deprecated in API level 31.**   

use `https://developer.android.com/reference/android/app/NotificationManager#getBubblePreference()` instead.

Gets whether all notifications posted by this app can appear outside of the notification shade, floating over other apps' content.

This value will be ignored for notifications that are posted to channels that do not allow bubbles (`https://developer.android.com/reference/android/app/NotificationChannel#canBubble()`).

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/Notification#getBubbleMetadata()`

### areBubblesEnabled

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean areBubblesEnabled ()
```

Returns whether bubbles are enabled at the feature level for the current user. When enabled, notifications able to bubble will display an affordance allowing the user to bubble them.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/Notification.Builder#setBubbleMetadata(android.app.Notification.BubbleMetadata)`

### areNotificationsEnabled

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean areNotificationsEnabled ()
```

Returns whether notifications from the calling package are enabled.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### areNotificationsPaused

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean areNotificationsPaused ()
```

Returns whether notifications from this package are temporarily hidden. This could be done because the package was marked as distracting to the user via `PackageManager#setDistractingPackageRestrictions(String[], int)` or because the package is `PackageManager#setPackagesSuspended(String[], boolean, PersistableBundle, PersistableBundle, SuspendDialogInfo) suspended`.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### canNotifyAsPackage

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean canNotifyAsPackage (String pkg)
```

Returns whether you are allowed to post notifications on behalf of a given package, with `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`. See `https://developer.android.com/reference/android/app/NotificationManager#setNotificationDelegate(java.lang.String)`.

<br />

| Parameters ||
|---|---|
| `pkg` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### canPostPromotedNotifications

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean canPostPromotedNotifications ()
```

Returns whether the calling app's properly formatted notifications can appear in a promoted format, which may result in higher ranking, appearances on additional surfaces, and richer presentation. Apps can request this permission by sending the user to the activity that matches the system intent action `https://developer.android.com/reference/android/provider/Settings#ACTION_APP_NOTIFICATION_PROMOTION_SETTINGS`.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### canUseFullScreenIntent

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean canUseFullScreenIntent ()
```

Returns whether the calling app can send fullscreen intents.

From Android `https://developer.android.com/reference/android/os/Build.VERSION_CODES#UPSIDE_DOWN_CAKE`, apps may not have permission to use `https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT`. If permission is denied, notification will show up as an expanded heads up notification on lockscreen.

To request access, add the `https://developer.android.com/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT` permission to your manifest, and use `https://developer.android.com/reference/android/provider/Settings#ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT`.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### cancel

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void cancel (int id)
```

Cancels a previously posted notification.

If the notification does not currently represent a `https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification)` or a `https://developer.android.com/reference/android/app/job/JobInfo.Builder#setUserInitiated(boolean)`, it will be removed from the UI and live `https://developer.android.com/reference/android/service/notification/NotificationListenerService` will be informed so they can remove the notification from their UIs.

<br />

<br />

| Parameters ||
|---|---|
| `id` | `int` <br /> |

### cancel

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void cancel (String tag, 
                int id)
```

Cancels a previously posted notification.

If the notification does not currently represent a `https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification)` or a `https://developer.android.com/reference/android/app/job/JobInfo.Builder#setUserInitiated(boolean)`, it will be removed from the UI and live `https://developer.android.com/reference/android/service/notification/NotificationListenerService` will be informed so they can remove the notification from their UIs.

<br />

<br />

| Parameters ||
|---|---|
| `tag` | `String`: This value may be `null`. <br /> |
| `id` | `int` <br /> |

### cancelAll

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void cancelAll ()
```

Cancel all previously shown notifications. See `https://developer.android.com/reference/android/app/NotificationManager#cancel(int)` for the detailed behavior.

<br />

### cancelAsPackage

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void cancelAsPackage (String targetPackage, 
                String tag, 
                int id)
```

Cancels a previously posted notification.

If the notification does not currently represent a `https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification)` or a `https://developer.android.com/reference/android/app/job/JobInfo.Builder#setUserInitiated(boolean)`, it will be removed from the UI and live `https://developer.android.com/reference/android/service/notification/NotificationListenerService` will be informed so they can remove the notification from their UIs.

This method may be used by `https://developer.android.com/reference/android/app/NotificationManager#getNotificationDelegate()` to cancel notifications that they have posted via `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`.

<br />

<br />

| Parameters ||
|---|---|
| `targetPackage` | `String`: The package to cancel the notification as. If this package is not your package, you can only cancel notifications you posted with `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`. This value cannot be `null`. <br /> |
| `tag` | `String`: A string identifier for this notification. May be `null`. <br /> |
| `id` | `int`: An identifier for this notification. <br /> |

### createNotificationChannel

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void createNotificationChannel (NotificationChannel channel)
```

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 name and description should only be changed if the locale changes or in response to the user renaming this channel. For example, if a user has a channel named 'Messages' and the user changes their locale, this channel's name should be updated with the translation of 'Messages' in the new locale.

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 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.

<br />

| 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. This value cannot be `null`. <br /> |

### createNotificationChannelGroup

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void createNotificationChannelGroup (NotificationChannelGroup group)
```

Creates a group container for `https://developer.android.com/reference/android/app/NotificationChannel` objects. This can be used to rename an existing group.

Group information is only used for presentation, not for behavior. Groups are optional for channels, and you can have a mix of channels that belong to groups and channels that do not.

For example, if your application supports multiple accounts, and those accounts will have similar channels, you can create a group for each account with account specific labels instead of appending account information to each channel's label.

<br />

<br />

| Parameters ||
|---|---|
| `group` | `NotificationChannelGroup`: The group to create. This value cannot be `null`. <br /> |

### createNotificationChannelGroups

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void createNotificationChannelGroups (List<NotificationChannelGroup> groups)
```

Creates multiple notification channel groups.

<br />

| Parameters ||
|---|---|
| `groups` | `List`: The list of groups to create. This value cannot be `null`. <br /> |

### createNotificationChannels

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void createNotificationChannels (List<NotificationChannel> channels)
```

Creates multiple notification channels that different notifications can be posted to. See `https://developer.android.com/reference/android/app/NotificationManager#createNotificationChannel(android.app.NotificationChannel)`.

<br />

| Parameters ||
|---|---|
| `channels` | `List`: the list of channels to attempt to create. This value cannot be `null`. <br /> |

### deleteNotificationChannel

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void deleteNotificationChannel (String channelId)
```

Deletes the given notification channel.

If you `https://developer.android.com/reference/android/app/NotificationManager#createNotificationChannel(android.app.NotificationChannel)` 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.

<br />

| Parameters ||
|---|---|
| `channelId` | `String` <br /> |

### deleteNotificationChannelGroup

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void deleteNotificationChannelGroup (String groupId)
```

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

<br />

| Parameters ||
|---|---|
| `groupId` | `String` <br /> |

### getActiveNotifications

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StatusBarNotification[] getActiveNotifications ()
```

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 `https://developer.android.com/reference/android/app/NotificationManager#cancel(java.lang.String,%20int)`ed by the app.


[StatusBarNotification](https://developer.android.com/reference/android/service/notification/StatusBarNotification) object, including the original `tag` and `id` supplied to `https://developer.android.com/reference/android/app/NotificationManager#notify(java.lang.String,%20int,%20android.app.Notification)` (via `https://developer.android.com/reference/android/service/notification/StatusBarNotification#getTag()` and `https://developer.android.com/reference/android/service/notification/StatusBarNotification#getId()`) as well as a copy of the original `https://developer.android.com/reference/android/app/Notification` object (via `https://developer.android.com/reference/android/service/notification/StatusBarNotification#getNotification()`).

From `https://developer.android.com/reference/android/os/Build.VERSION_CODES#Q`, will also return notifications you've posted as an app's notification delegate via `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`.

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/notification/StatusBarNotification` | An array of `https://developer.android.com/reference/android/service/notification/StatusBarNotification`. <br /> |

### getAutomaticZenRule

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public AutomaticZenRule getAutomaticZenRule (String id)
```

Returns the AutomaticZenRule with the given id, if it exists and the caller has access.

Throws a SecurityException if policy access is not granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

Returns null if there are no zen rules that match the given id, or if the calling package doesn't own the matching rule. See `https://developer.android.com/reference/android/app/AutomaticZenRule#getOwner()`.

<br />

| Parameters ||
|---|---|
| `id` | `String` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/AutomaticZenRule` | <br /> |

### getAutomaticZenRuleState

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getAutomaticZenRuleState (String id)
```

Returns the current activation state of an `https://developer.android.com/reference/android/app/AutomaticZenRule`.

Returns `https://developer.android.com/reference/android/service/notification/Condition#STATE_UNKNOWN` if the rule does not exist or the calling package doesn't have access to it.

<br />

| Parameters ||
|---|---|
| `id` | `String`: The id of the rule. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `int` | the state of the rule. Value is one of the following: - `https://developer.android.com/reference/android/service/notification/Condition#STATE_FALSE` - `https://developer.android.com/reference/android/service/notification/Condition#STATE_TRUE` - `https://developer.android.com/reference/android/service/notification/Condition#STATE_UNKNOWN` - `https://developer.android.com/reference/android/service/notification/Condition#STATE_ERROR` |

### getAutomaticZenRules

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Map<String, AutomaticZenRule> getAutomaticZenRules ()
```

Returns AutomaticZenRules owned by the caller.

Throws a SecurityException if policy access is not granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/android/app/AutomaticZenRule>` | <br /> |

### getBubblePreference

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getBubblePreference ()
```

Gets the bubble preference for the app. This preference only applies to notifications that have been properly configured to bubble.

If `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_ALL`, then any bubble notification will appear as a bubble, as long as the user hasn't excluded it (`https://developer.android.com/reference/android/app/NotificationChannel#canBubble()`).

If `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_SELECTED`, then any bubble notification will appear as a bubble, as long as the user has selected it.

If `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_NONE`, then no notification may appear as a bubble from the app.

<br />

| Returns ||
|---|---|
| `int` | the users' bubble preference for the app. Value is one of the following: - `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_NONE` - `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_SELECTED` - `https://developer.android.com/reference/android/app/NotificationManager#BUBBLE_PREFERENCE_ALL` |

**See also:**

- `https://developer.android.com/reference/android/app/Notification#getBubbleMetadata()`

### getConsolidatedNotificationPolicy

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public NotificationManager.Policy getConsolidatedNotificationPolicy ()
```

Returns the currently applied notification policy.

If `https://developer.android.com/reference/android/app/NotificationManager#getCurrentInterruptionFilter()` is equal to `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALL`, then the consolidated notification policy will match the default notification policy returned by `https://developer.android.com/reference/android/app/NotificationManager#getNotificationPolicy()`.

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/NotificationManager.Policy` | This value cannot be `null`. <br /> |

### getCurrentInterruptionFilter

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final int getCurrentInterruptionFilter ()
```

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.

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_NONE` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_PRIORITY` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALARMS` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALL` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_UNKNOWN` |

### getImportance

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getImportance ()
```

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

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_UNSPECIFIED` - `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_NONE` - `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_MIN` - `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_LOW` - `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_DEFAULT` - `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_HIGH` |

### getNotificationChannel

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public NotificationChannel getNotificationChannel (String channelId)
```

Returns the notification channel settings for a given channel id.

The channel must belong to your package, or to a package you are an approved notification delegate for (see `https://developer.android.com/reference/android/app/NotificationManager#canNotifyAsPackage(java.lang.String)`), or it will not be returned. To query a channel as a notification delegate, call this method from a context created for that package (see `https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)`).

<br />

<br />

| Parameters ||
|---|---|
| `channelId` | `String` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/NotificationChannel` | <br /> |

### getNotificationChannel

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public NotificationChannel getNotificationChannel (String channelId, 
                String conversationId)
```

Returns the notification channel settings for a given channel and `https://developer.android.com/reference/android/content/pm/ShortcutInfo#getId()`.

The channel must belong to your package, or to a package you are an approved notification delegate for (see `https://developer.android.com/reference/android/app/NotificationManager#canNotifyAsPackage(java.lang.String)`), or it will not be returned. To query a channel as a notification delegate, call this method from a context created for that package (see `https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)`).

If a conversation channel with the given conversation id is not found, this method will instead return the parent channel with the given channel ID, or `null` if neither exists.

<br />

<br />

| Parameters ||
|---|---|
| `channelId` | `String`: This value cannot be `null`. <br /> |
| `conversationId` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/NotificationChannel` | <br /> |

### getNotificationChannelGroup

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public NotificationChannelGroup getNotificationChannelGroup (String channelGroupId)
```

Returns the notification channel group settings for a given channel group id. The channel group must belong to your package, or null will be returned.

<br />

| Parameters ||
|---|---|
| `channelGroupId` | `String` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/NotificationChannelGroup` | <br /> |

### getNotificationChannelGroups

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public List<NotificationChannelGroup> getNotificationChannelGroups ()
```

Returns all notification channel groups belonging to the calling app.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/NotificationChannelGroup>` | <br /> |

### getNotificationChannels

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public List<NotificationChannel> getNotificationChannels ()
```

Returns all notification channels belonging to the calling package.

Approved notification delegates (see `https://developer.android.com/reference/android/app/NotificationManager#canNotifyAsPackage(java.lang.String)`) can query notification channels belonging to packages they are the delegate for. To do so, call this method from a context created for that package (see `https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)`).

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/NotificationChannel>` | <br /> |

### getNotificationDelegate

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getNotificationDelegate ()
```

Returns the `https://developer.android.com/reference/android/app/NotificationManager#setNotificationDelegate(java.lang.String)` that can post notifications on your behalf, if there currently is one.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | This value may be `null`. <br /> |

### getNotificationPolicy

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public NotificationManager.Policy getNotificationPolicy ()
```

Gets the current user-specified default notification policy.

For apps targeting `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM` and above (with some exceptions, such as companion device managers) this method will return the policy associated to their implicit `https://developer.android.com/reference/android/app/AutomaticZenRule` instead, if it exists. See `https://developer.android.com/reference/android/app/NotificationManager#setNotificationPolicy(android.app.NotificationManager.Policy)`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/NotificationManager.Policy` | <br /> |

### isNotificationListenerAccessGranted

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isNotificationListenerAccessGranted (ComponentName listener)
```

Checks whether the user has approved a given `https://developer.android.com/reference/android/service/notification/NotificationListenerService`.

The listener service must belong to the calling app.

Apps can request notification listener access by sending the user to the activity that matches the system intent action `https://developer.android.com/reference/android/provider/Settings#ACTION_NOTIFICATION_LISTENER_SETTINGS`.

<br />

| Parameters ||
|---|---|
| `listener` | `ComponentName` <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isNotificationPolicyAccessGranted

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isNotificationPolicyAccessGranted ()
```

Checks the ability to modify Notification Policy for the calling package.

Returns true if the calling package can modify notification policy.

Apps can request policy access by sending the user to the activity that matches the system intent action `https://developer.android.com/reference/android/provider/Settings#ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS`.

Use `https://developer.android.com/reference/android/app/NotificationManager#ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED` to listen for user grant or denial of this access.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### matchesCallFilter

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean matchesCallFilter (Uri uri)
```

Returns whether a call from the provided URI is permitted to notify the user.

A true return value indicates one of the following: Do Not Disturb is not currently active; or the caller is a repeat caller and the current policy allows interruptions from repeat callers; or the caller is in the user's set of contacts whose calls are allowed to interrupt Do Not Disturb.

If Do Not Disturb is enabled and either no interruptions or only alarms are allowed, this method will return false regardless of input.

The provided URI should be a `tel:` or `mailto:` schema URI indicating the source of the call. For an accurate answer regarding whether the caller matches the user's permitted contacts, the path part of the URI must match an entry the Contacts database in the appropriate column.

Passing in a `https://developer.android.com/reference/android/provider/ContactsContract.Contacts#CONTENT_LOOKUP_URI` is also permissible, but should only be used for priority contact interruptions and may not provide accurate results in the case of repeat callers.

See also `https://developer.android.com/reference/android/app/Person.Builder#setUri(java.lang.String)` and `https://developer.android.com/reference/android/provider/ContactsContract.Contacts#CONTENT_LOOKUP_URI` for more information.

Callers of this method must have notification listener access, permission to read contacts, or have system permissions.

NOTE: This method calls into Contacts, which may take some time, and should not be called on the main thread.
.   
This method may take several seconds to complete, so it should only be called from a worker thread.

<br />

<br />

| Parameters ||
|---|---|
| `uri` | `Uri`: A URI representing a caller. Must not be null. <br /> |

| Returns ||
|---|---|
| `boolean` | A boolean indicating whether a call from the URI provided would be allowed to interrupt the user given the current filter. <br /> |

### notify

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void notify (int id, 
                Notification notification)
```

Post a notification to be shown in the status bar. If a notification with the same id has already been posted by your application and has not yet been canceled, it will be replaced by the updated information.

<br />

| Parameters ||
|---|---|
| `id` | `int`: An identifier for this notification unique within your application. <br /> |
| `notification` | `Notification`: A `https://developer.android.com/reference/android/app/Notification` object describing what to show the user. Must not be null. <br /> |

### notify

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void notify (String tag, 
                int id, 
                Notification notification)
```

Posts a notification to be shown in the status bar. If a notification with the same tag and id has already been posted by your application and has not yet been canceled, it will be replaced by the updated information. All `https://developer.android.com/reference/android/service/notification/NotificationListenerService` will be granted `https://developer.android.com/reference/android/content/Intent#FLAG_GRANT_READ_URI_PERMISSION` access to any `https://developer.android.com/reference/android/net/Uri` provided on this notification or the `https://developer.android.com/reference/android/app/NotificationChannel` this notification is posted to using `https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)`. Permission will be revoked when the notification is canceled, or you can revoke permissions with `https://developer.android.com/reference/android/content/Context#revokeUriPermission(android.net.Uri,%20int)`.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: A string identifier for this notification. May be `null`. <br /> |
| `id` | `int`: An identifier for this notification. The pair (tag, id) must be unique within your application. <br /> |
| `notification` | `Notification`: A `https://developer.android.com/reference/android/app/Notification` object describing what to show the user. Must not be null. <br /> |

### notifyAsPackage

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void notifyAsPackage (String targetPackage, 
                String tag, 
                int id, 
                Notification notification)
```

Posts a notification as a specified package to be shown in the status bar. If a notification with the same tag and id has already been posted for that package and has not yet been canceled, it will be replaced by the updated information. All `https://developer.android.com/reference/android/service/notification/NotificationListenerService` will be granted `https://developer.android.com/reference/android/content/Intent#FLAG_GRANT_READ_URI_PERMISSION` access to any `https://developer.android.com/reference/android/net/Uri` provided on this notification or the `https://developer.android.com/reference/android/app/NotificationChannel` this notification is posted to using `https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)`. Permission will be revoked when the notification is canceled, or you can revoke permissions with `https://developer.android.com/reference/android/content/Context#revokeUriPermission(android.net.Uri,%20int)`.

<br />

| Parameters ||
|---|---|
| `targetPackage` | `String`: The package to post the notification as. The package must have granted you access to post notifications on their behalf with `https://developer.android.com/reference/android/app/NotificationManager#setNotificationDelegate(java.lang.String)`. This value cannot be `null`. <br /> |
| `tag` | `String`: A string identifier for this notification. May be `null`. <br /> |
| `id` | `int`: An identifier for this notification. The pair (tag, id) must be unique within your application. <br /> |
| `notification` | `Notification`: A `https://developer.android.com/reference/android/app/Notification` object describing what to show the user. Must not be null. <br /> |

### removeAutomaticZenRule

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean removeAutomaticZenRule (String id)
```

Deletes the automatic zen rule with the given id.

Throws a SecurityException if policy access is not granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

Callers can only delete rules that they own. See `https://developer.android.com/reference/android/app/AutomaticZenRule#getOwner()`.

<br />

| Parameters ||
|---|---|
| `id` | `String`: the id of the rule to delete. <br /> |

| Returns ||
|---|---|
| `boolean` | Whether the rule was successfully deleted. <br /> |

### setAutomaticZenRuleState

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setAutomaticZenRuleState (String id, 
                Condition condition)
```

Informs the notification manager that the state of an `https://developer.android.com/reference/android/app/AutomaticZenRule` has changed. Use this method to put the system into Do Not Disturb mode or request that it exits Do Not Disturb mode. The calling app must own the provided `https://developer.android.com/reference/android/app/AutomaticZenRule`.

This method can be used in conjunction with or as a replacement to `https://developer.android.com/reference/android/service/notification/ConditionProviderService#notifyCondition(android.service.notification.Condition)`.

The condition change may be ignored if the user has activated or deactivated the rule manually -- the user can "override" the rule *this time* , with the rule resuming its normal operation for the next cycle. When this has happened, the supplied condition will be applied only once the automatic state is in agreement with the user-provided state. For example, assume that the `https://developer.android.com/reference/android/app/AutomaticZenRule` corresponds to a "Driving Mode" with automatic driving detection.

1. App detects driving and notifies the system that the rule should be active, calling this method with a `https://developer.android.com/reference/android/service/notification/Condition` with `https://developer.android.com/reference/android/service/notification/Condition#STATE_TRUE`).
2. User deactivates ("snoozes") the rule for some reason. This overrides the app-provided condition state.
3. App is still detecting driving, so again calls with `https://developer.android.com/reference/android/service/notification/Condition#STATE_TRUE`. This is ignored by the system, as the user override prevails.
4. Some time later, the app detects that driving stopped, so the rule should be inactive, and calls with `https://developer.android.com/reference/android/service/notification/Condition#STATE_FALSE`). This doesn't change the actual rule state (it was already inactive due to the user's override), but clears the override.
5. Some time later, the app detects that driving has started again, and notifies that the rule should be active (calling with `https://developer.android.com/reference/android/service/notification/Condition#STATE_TRUE` again). The rule is activated.

Note that the behavior at step #3 is different if the app also specifies `https://developer.android.com/reference/android/service/notification/Condition#SOURCE_USER_ACTION` as the `https://developer.android.com/reference/android/service/notification/Condition#source` -- rule state updates coming from user actions are not ignored.

<br />

| Parameters ||
|---|---|
| `id` | `String`: The id of the rule whose state should change. This value cannot be `null`. <br /> |
| `condition` | `Condition`: The new state of this rule. This value cannot be `null`. <br /> |

### setInterruptionFilter

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void setInterruptionFilter (int interruptionFilter)
```

Sets 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.

Apps targeting `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM` and above (with some exceptions, such as companion device managers) cannot modify the global interruption filter. Calling this method will instead activate or deactivate an `https://developer.android.com/reference/android/app/AutomaticZenRule` associated to the app, using a `https://developer.android.com/reference/android/service/notification/ZenPolicy` that corresponds to the `https://developer.android.com/reference/android/app/NotificationManager.Policy` supplied to `https://developer.android.com/reference/android/app/NotificationManager#setNotificationPolicy(android.app.NotificationManager.Policy)` (or the global policy when one wasn't provided).

Only available if policy access is granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

<br />

| Parameters ||
|---|---|
| `interruptionFilter` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_NONE` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_PRIORITY` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALARMS` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_ALL` - `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_UNKNOWN` |

### setNotificationDelegate

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setNotificationDelegate (String delegate)
```

Allows a package to post notifications on your behalf using `https://developer.android.com/reference/android/app/NotificationManager#notifyAsPackage(java.lang.String,%20java.lang.String,%20int,%20android.app.Notification)`. This can be used to allow persistent processes to post notifications based on messages received on your behalf from the cloud, without your process having to wake up. You can check if you have an allowed delegate with `https://developer.android.com/reference/android/app/NotificationManager#getNotificationDelegate()` and revoke your delegate by passing null to this method.

<br />

| Parameters ||
|---|---|
| `delegate` | `String`: Package name of the app which can send notifications on your behalf. This value may be `null`. <br /> |

### setNotificationPolicy

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setNotificationPolicy (NotificationManager.Policy policy)
```

Sets the current notification policy (which applies when `https://developer.android.com/reference/android/app/NotificationManager#setInterruptionFilter(int)` is called with the `https://developer.android.com/reference/android/app/NotificationManager#INTERRUPTION_FILTER_PRIORITY` value).

Apps targeting `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM` and above (with some exceptions, such as companion device managers) cannot modify the global notification policy. Calling this method will instead create or update an `https://developer.android.com/reference/android/app/AutomaticZenRule` associated to the app, using a `https://developer.android.com/reference/android/service/notification/ZenPolicy` corresponding to the `https://developer.android.com/reference/android/app/NotificationManager.Policy` supplied here, and which will be activated/deactivated by calls to `https://developer.android.com/reference/android/app/NotificationManager#setInterruptionFilter(int)`.

Only available if policy access is granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

<br />

| Parameters ||
|---|---|
| `policy` | `NotificationManager.Policy`: The new desired policy. This value cannot be `null`. <br /> |

### shouldHideSilentStatusBarIcons

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean shouldHideSilentStatusBarIcons ()
```

Returns whether the user wants silent notifications (see `https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_LOW` to appear in the status bar.

Only available for `https://developer.android.com/reference/android/app/NotificationManager#isNotificationListenerAccessGranted(android.content.ComponentName)`.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### updateAutomaticZenRule

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean updateAutomaticZenRule (String id, 
                AutomaticZenRule automaticZenRule)
```

Updates the given zen rule.

Before `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM`, updating a rule that is not backed up by a `https://developer.android.com/reference/android/service/notification/ConditionProviderService` will deactivate it if it was previously active. Starting with `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM`, this will only happen if the rule's definition is actually changing.

Throws a SecurityException if policy access is not granted to this package. See `https://developer.android.com/reference/android/app/NotificationManager#isNotificationPolicyAccessGranted()`.

Callers can only update rules that they own. See `https://developer.android.com/reference/android/app/AutomaticZenRule#getOwner()`.

<br />

| Parameters ||
|---|---|
| `id` | `String`: The id of the rule to update <br /> |
| `automaticZenRule` | `AutomaticZenRule`: the rule to update. <br /> |

| Returns ||
|---|---|
| `boolean` | Whether the rule was successfully updated. <br /> |