Skip to content

Most visited

Recently visited

navigation

NotificationListenerService

public abstract class NotificationListenerService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.service.notification.NotificationListenerService


A service that receives calls from the system when new notifications are posted or removed, or their ranking changed.

To extend this class, you must declare the service in your manifest file with the BIND_NOTIFICATION_LISTENER_SERVICE permission and include an intent filter with the SERVICE_INTERFACE action. For example:

 <service android:name=".NotificationListener"
          android:label="@string/service_name"
          android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
     <intent-filter>
         <action android:name="android.service.notification.NotificationListenerService" />
     </intent-filter>
 </service>

The service should wait for the onListenerConnected() event before performing any operations. The requestRebind(ComponentName) method is the only one that is safe to call before onListenerConnected() or after onListenerDisconnected().

Summary

Nested classes

class NotificationListenerService.Ranking

Stores ranking related information on a currently active notification. 

class NotificationListenerService.RankingMap

Provides access to ranking information on currently active notifications. 

Constants

int HINT_HOST_DISABLE_CALL_EFFECTS

Listener hints constant - the primary device UI should disable phone call sounds, buyt not notification sound.

int HINT_HOST_DISABLE_EFFECTS

Listener hints constant - the primary device UI should disable notification sound, vibrating and other visual or aural effects.

int HINT_HOST_DISABLE_NOTIFICATION_EFFECTS

Listener hints constant - the primary device UI should disable notification sound, but not phone calls.

int INTERRUPTION_FILTER_ALARMS

Interruption filter constant - Alarms only interruption filter.

int INTERRUPTION_FILTER_ALL

Interruption filter constant - Normal interruption filter.

int INTERRUPTION_FILTER_NONE

Interruption filter constant - No interruptions filter.

int INTERRUPTION_FILTER_PRIORITY

Interruption filter constant - Priority interruption filter.

int INTERRUPTION_FILTER_UNKNOWN

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

int NOTIFICATION_CHANNEL_OR_GROUP_ADDED

Channel or group modification reason provided to onNotificationChannelModified(String, UserHandle, NotificationChannel, int) or onNotificationChannelGroupModified(String, UserHandle, NotificationChannelGroup, int)- the provided object was created.

int NOTIFICATION_CHANNEL_OR_GROUP_DELETED

Channel or group modification reason provided to onNotificationChannelModified(String, UserHandle, NotificationChannel, int) or onNotificationChannelGroupModified(String, UserHandle, NotificationChannelGroup, int)- the provided object was deleted.

int NOTIFICATION_CHANNEL_OR_GROUP_UPDATED

Channel or group modification reason provided to onNotificationChannelModified(String, UserHandle, NotificationChannel, int) or onNotificationChannelGroupModified(String, UserHandle, NotificationChannelGroup, int) - the provided object was updated.

int REASON_APP_CANCEL

Notification was canceled by the app canceling this specific notification.

int REASON_APP_CANCEL_ALL

Notification was canceled by the app cancelling all its notifications.

int REASON_CANCEL

Notification was canceled by the status bar reporting a user dismissal.

int REASON_CANCEL_ALL

Notification was canceled by the status bar reporting a user dismiss all.

int REASON_CHANNEL_BANNED

Notification was canceled by the user banning the channel.

int REASON_CLICK

Notification was canceled by the status bar reporting a notification click.

int REASON_ERROR

Notification was canceled by the status bar reporting an inflation error.

int REASON_GROUP_OPTIMIZATION

Notification was canceled because it was an invisible member of a group.

int REASON_GROUP_SUMMARY_CANCELED

Notification was canceled because it was a member of a canceled group.

int REASON_LISTENER_CANCEL

Notification was canceled by a listener reporting a user dismissal.

int REASON_LISTENER_CANCEL_ALL

Notification was canceled by a listener reporting a user dismiss all.

int REASON_PACKAGE_BANNED

Notification was canceled by the user banning the package.

int REASON_PACKAGE_CHANGED

Notification was canceled by the package manager modifying the package.

int REASON_PACKAGE_SUSPENDED

Notification was canceled by the device administrator suspending the package.

int REASON_PROFILE_TURNED_OFF

Notification was canceled by the owning managed profile being turned off.

int REASON_SNOOZED

Notification was snoozed.

int REASON_TIMEOUT

Notification was canceled due to timeout

int REASON_UNAUTOBUNDLED

Autobundled summary notification was canceled because its group was unbundled

int REASON_USER_STOPPED

Notification was canceled by the owning user context being stopped.

String SERVICE_INTERFACE

The Intent that must be declared as handled by the service.

int SUPPRESSED_EFFECT_SCREEN_OFF

Whether notification suppressed by DND should not interruption visually when the screen is off.

int SUPPRESSED_EFFECT_SCREEN_ON

Whether notification suppressed by DND should not interruption visually when the screen is on.

Inherited constants

From class android.app.Service
From class android.content.Context
From interface android.content.ComponentCallbacks2

Public constructors

NotificationListenerService()

Public methods

final void cancelAllNotifications()

Inform the notification manager about dismissal of all notifications.

final void cancelNotification(String pkg, String tag, int id)

This method was deprecated in API level 21. Use cancelNotification(String) instead. Beginning with LOLLIPOP this method will no longer cancel the notification. It will continue to cancel the notification for applications whose targetSdkVersion is earlier than LOLLIPOP.

final void cancelNotification(String key)

Inform the notification manager about dismissal of a single notification.

final void cancelNotifications(String[] keys)

Inform the notification manager about dismissal of specific notifications.

StatusBarNotification[] getActiveNotifications(String[] keys)

Request one or more notifications by key.

StatusBarNotification[] getActiveNotifications()

Request the list of outstanding notifications (that is, those that are visible to the current user).

final int getCurrentInterruptionFilter()

Gets the current notification interruption filter active on the host.

final int getCurrentListenerHints()

Gets the set of hints representing current state.

NotificationListenerService.RankingMap getCurrentRanking()

Returns current ranking information.

final List<NotificationChannelGroup> getNotificationChannelGroups(String pkg, UserHandle user)

Returns all notification channel groups belonging to the given package for a given user.

final List<NotificationChannel> getNotificationChannels(String pkg, UserHandle user)

Returns all notification channels belonging to the given package for a given user.

final StatusBarNotification[] getSnoozedNotifications()

Like getActiveNotifications(), but returns the list of currently snoozed notifications, for all users this listener has access to.

IBinder onBind(Intent intent)

This is not the lifecycle event you are looking for.

void onDestroy()

Called by the system to notify a Service that it is no longer used and is being removed.

void onInterruptionFilterChanged(int interruptionFilter)

Implement this method to be notified when the interruption filter changed.

void onListenerConnected()

Implement this method to learn about when the listener is enabled and connected to the notification manager.

void onListenerDisconnected()

Implement this method to learn about when the listener is disconnected from the notification manager.You will not receive any events after this call, and may only call requestRebind(ComponentName) at this time.

void onListenerHintsChanged(int hints)

Implement this method to be notified when the Listener hints change.

void onNotificationChannelGroupModified(String pkg, UserHandle user, NotificationChannelGroup group, int modificationType)

Implement this method to learn about notification channel group modifications.

void onNotificationChannelModified(String pkg, UserHandle user, NotificationChannel channel, int modificationType)

Implement this method to learn about notification channel modifications.

void onNotificationPosted(StatusBarNotification sbn, NotificationListenerService.RankingMap rankingMap)

Implement this method to learn about new notifications as they are posted by apps.

void onNotificationPosted(StatusBarNotification sbn)

Implement this method to learn about new notifications as they are posted by apps.

void onNotificationRankingUpdate(NotificationListenerService.RankingMap rankingMap)

Implement this method to be notified when the notification ranking changes.

void onNotificationRemoved(StatusBarNotification sbn)

Implement this method to learn when notifications are removed.

void onNotificationRemoved(StatusBarNotification sbn, NotificationListenerService.RankingMap rankingMap)

Implement this method to learn when notifications are removed.

void onNotificationRemoved(StatusBarNotification sbn, NotificationListenerService.RankingMap rankingMap, int reason)

Implement this method to learn when notifications are removed and why.

final void requestInterruptionFilter(int interruptionFilter)

Sets the desired interruption filter.

final void requestListenerHints(int hints)

Sets the desired listener hints.

static void requestRebind(ComponentName componentName)

Request that the listener be rebound, after a previous call to requestUnbind().

final void requestUnbind()

Request that the service be unbound.

final void setNotificationsShown(String[] keys)

Inform the notification manager that these notifications have been viewed by the user.

final void snoozeNotification(String key, long durationMs)

Inform the notification manager about snoozing a specific notification.

final void updateNotificationChannel(String pkg, UserHandle user, NotificationChannel channel)

Updates a notification channel for a given package for a given user.

Protected methods

void attachBaseContext(Context base)

Set the base context for this ContextWrapper.

Inherited methods

From class android.app.Service
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface android.content.ComponentCallbacks

Constants

HINT_HOST_DISABLE_CALL_EFFECTS

added in API level 24
int HINT_HOST_DISABLE_CALL_EFFECTS

Listener hints constant - the primary device UI should disable phone call sounds, buyt not notification sound. This does not change the interruption filter, only the effects.

Constant Value: 4 (0x00000004)

HINT_HOST_DISABLE_EFFECTS

added in API level 21
int HINT_HOST_DISABLE_EFFECTS

Listener hints constant - the primary device UI should disable notification sound, vibrating and other visual or aural effects. This does not change the interruption filter, only the effects.

Constant Value: 1 (0x00000001)

HINT_HOST_DISABLE_NOTIFICATION_EFFECTS

added in API level 24
int HINT_HOST_DISABLE_NOTIFICATION_EFFECTS

Listener hints constant - the primary device UI should disable notification sound, but not phone calls. This does not change the interruption filter, only the effects.

Constant Value: 2 (0x00000002)

INTERRUPTION_FILTER_ALARMS

added in API level 23
int INTERRUPTION_FILTER_ALARMS

Interruption filter constant - Alarms only interruption filter.

Constant Value: 4 (0x00000004)

INTERRUPTION_FILTER_ALL

added in API level 21
int INTERRUPTION_FILTER_ALL

Interruption filter constant - Normal interruption filter.

Constant Value: 1 (0x00000001)

INTERRUPTION_FILTER_NONE

added in API level 21
int INTERRUPTION_FILTER_NONE

Interruption filter constant - No interruptions filter.

Constant Value: 3 (0x00000003)

INTERRUPTION_FILTER_PRIORITY

added in API level 21
int INTERRUPTION_FILTER_PRIORITY

Interruption filter constant - Priority interruption filter.

Constant Value: 2 (0x00000002)

INTERRUPTION_FILTER_UNKNOWN

added in API level 23
int INTERRUPTION_FILTER_UNKNOWN

Interruption filter constant - returned when the value is unavailable for any reason. For example, before the notification listener is connected.

See also:

Constant Value: 0 (0x00000000)

NOTIFICATION_CHANNEL_OR_GROUP_ADDED

added in API level 26
int NOTIFICATION_CHANNEL_OR_GROUP_ADDED

Channel or group modification reason provided to onNotificationChannelModified(String, UserHandle, NotificationChannel, int) or onNotificationChannelGroupModified(String, UserHandle, NotificationChannelGroup, int)- the provided object was created.

Constant Value: 1 (0x00000001)

NOTIFICATION_CHANNEL_OR_GROUP_DELETED

added in API level 26
int NOTIFICATION_CHANNEL_OR_GROUP_DELETED

Channel or group modification reason provided to onNotificationChannelModified(String, UserHandle, NotificationChannel, int) or onNotificationChannelGroupModified(String, UserHandle, NotificationChannelGroup, int)- the provided object was deleted.

Constant Value: 3 (0x00000003)

NOTIFICATION_CHANNEL_OR_GROUP_UPDATED

added in API level 26
int NOTIFICATION_CHANNEL_OR_GROUP_UPDATED

Channel or group modification reason provided to onNotificationChannelModified(String, UserHandle, NotificationChannel, int) or onNotificationChannelGroupModified(String, UserHandle, NotificationChannelGroup, int) - the provided object was updated.

Constant Value: 2 (0x00000002)

REASON_APP_CANCEL

added in API level 26
int REASON_APP_CANCEL

Notification was canceled by the app canceling this specific notification.

Constant Value: 8 (0x00000008)

REASON_APP_CANCEL_ALL

added in API level 26
int REASON_APP_CANCEL_ALL

Notification was canceled by the app cancelling all its notifications.

Constant Value: 9 (0x00000009)

REASON_CANCEL

added in API level 26
int REASON_CANCEL

Notification was canceled by the status bar reporting a user dismissal.

Constant Value: 2 (0x00000002)

REASON_CANCEL_ALL

added in API level 26
int REASON_CANCEL_ALL

Notification was canceled by the status bar reporting a user dismiss all.

Constant Value: 3 (0x00000003)

REASON_CHANNEL_BANNED

added in API level 26
int REASON_CHANNEL_BANNED

Notification was canceled by the user banning the channel.

Constant Value: 17 (0x00000011)

REASON_CLICK

added in API level 26
int REASON_CLICK

Notification was canceled by the status bar reporting a notification click.

Constant Value: 1 (0x00000001)

REASON_ERROR

added in API level 26
int REASON_ERROR

Notification was canceled by the status bar reporting an inflation error.

Constant Value: 4 (0x00000004)

REASON_GROUP_OPTIMIZATION

added in API level 26
int REASON_GROUP_OPTIMIZATION

Notification was canceled because it was an invisible member of a group.

Constant Value: 13 (0x0000000d)

REASON_GROUP_SUMMARY_CANCELED

added in API level 26
int REASON_GROUP_SUMMARY_CANCELED

Notification was canceled because it was a member of a canceled group.

Constant Value: 12 (0x0000000c)

REASON_LISTENER_CANCEL

added in API level 26
int REASON_LISTENER_CANCEL

Notification was canceled by a listener reporting a user dismissal.

Constant Value: 10 (0x0000000a)

REASON_LISTENER_CANCEL_ALL

added in API level 26
int REASON_LISTENER_CANCEL_ALL

Notification was canceled by a listener reporting a user dismiss all.

Constant Value: 11 (0x0000000b)

REASON_PACKAGE_BANNED

added in API level 26
int REASON_PACKAGE_BANNED

Notification was canceled by the user banning the package.

Constant Value: 7 (0x00000007)

REASON_PACKAGE_CHANGED

added in API level 26
int REASON_PACKAGE_CHANGED

Notification was canceled by the package manager modifying the package.

Constant Value: 5 (0x00000005)

REASON_PACKAGE_SUSPENDED

added in API level 26
int REASON_PACKAGE_SUSPENDED

Notification was canceled by the device administrator suspending the package.

Constant Value: 14 (0x0000000e)

REASON_PROFILE_TURNED_OFF

added in API level 26
int REASON_PROFILE_TURNED_OFF

Notification was canceled by the owning managed profile being turned off.

Constant Value: 15 (0x0000000f)

REASON_SNOOZED

added in API level 26
int REASON_SNOOZED

Notification was snoozed.

Constant Value: 18 (0x00000012)

REASON_TIMEOUT

added in API level 26
int REASON_TIMEOUT

Notification was canceled due to timeout

Constant Value: 19 (0x00000013)

REASON_UNAUTOBUNDLED

added in API level 26
int REASON_UNAUTOBUNDLED

Autobundled summary notification was canceled because its group was unbundled

Constant Value: 16 (0x00000010)

REASON_USER_STOPPED

added in API level 26
int REASON_USER_STOPPED

Notification was canceled by the owning user context being stopped.

Constant Value: 6 (0x00000006)

SERVICE_INTERFACE

added in API level 18
String SERVICE_INTERFACE

The Intent that must be declared as handled by the service.

Constant Value: "android.service.notification.NotificationListenerService"

SUPPRESSED_EFFECT_SCREEN_OFF

added in API level 24
int SUPPRESSED_EFFECT_SCREEN_OFF

Whether notification suppressed by DND should not interruption visually when the screen is off.

Constant Value: 1 (0x00000001)

SUPPRESSED_EFFECT_SCREEN_ON

added in API level 24
int SUPPRESSED_EFFECT_SCREEN_ON

Whether notification suppressed by DND should not interruption visually when the screen is on.

Constant Value: 2 (0x00000002)

Public constructors

NotificationListenerService

added in API level 18
NotificationListenerService ()

Public methods

cancelAllNotifications

added in API level 18
void cancelAllNotifications ()

Inform the notification manager about dismissal of all notifications.

Use this if your listener has a user interface that allows the user to dismiss all notifications, similar to the behavior of Android's status bar and notification panel. It should be called after the user invokes the "dismiss all" function of your UI; upon being informed, the notification manager will actually remove all active notifications and you will get multiple onNotificationRemoved(StatusBarNotification) callbacks.

The service should wait for the onListenerConnected() event before performing this operation.

See also:

cancelNotification

added in API level 18
void cancelNotification (String pkg, 
                String tag, 
                int id)

This method was deprecated in API level 21.
Use cancelNotification(String) instead. Beginning with LOLLIPOP this method will no longer cancel the notification. It will continue to cancel the notification for applications whose targetSdkVersion is earlier than LOLLIPOP.

Inform the notification manager about dismissal of a single notification.

Use this if your listener has a user interface that allows the user to dismiss individual notifications, similar to the behavior of Android's status bar and notification panel. It should be called after the user dismisses a single notification using your UI; upon being informed, the notification manager will actually remove the notification and you will get an onNotificationRemoved(StatusBarNotification) callback.

Note: If your listener allows the user to fire a notification's contentIntent by tapping/clicking/etc., you should call this method at that time if the Notification in question has the FLAG_AUTO_CANCEL flag set.

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
pkg String: Package of the notifying app.

tag String: Tag of the notification as specified by the notifying app in notify(String, int, android.app.Notification).

id int: ID of the notification as specified by the notifying app in notify(String, int, android.app.Notification).

cancelNotification

added in API level 21
void cancelNotification (String key)

Inform the notification manager about dismissal of a single notification.

Use this if your listener has a user interface that allows the user to dismiss individual notifications, similar to the behavior of Android's status bar and notification panel. It should be called after the user dismisses a single notification using your UI; upon being informed, the notification manager will actually remove the notification and you will get an onNotificationRemoved(StatusBarNotification) callback.

Note: If your listener allows the user to fire a notification's contentIntent by tapping/clicking/etc., you should call this method at that time if the Notification in question has the FLAG_AUTO_CANCEL flag set.

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
key String: Notification to dismiss from getKey().

cancelNotifications

added in API level 21
void cancelNotifications (String[] keys)

Inform the notification manager about dismissal of specific notifications.

Use this if your listener has a user interface that allows the user to dismiss multiple notifications at once.

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
keys String: Notifications to dismiss, or null to dismiss all.

getActiveNotifications

added in API level 21
StatusBarNotification[] getActiveNotifications (String[] keys)

Request one or more notifications by key. Useful if you have been keeping track of notifications but didn't want to retain the bits, and now need to go back and extract more data out of those notifications.

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
keys String: the keys of the notifications to request

Returns
StatusBarNotification[] An array of notifications corresponding to the requested keys, in the same order as the key list.

getActiveNotifications

added in API level 18
StatusBarNotification[] getActiveNotifications ()

Request the list of outstanding notifications (that is, those that are visible to the current user). Useful when you don't know what's already been posted.

The service should wait for the onListenerConnected() event before performing this operation.

Returns
StatusBarNotification[] An array of active notifications, sorted in natural order.

getCurrentInterruptionFilter

added in API level 21
int getCurrentInterruptionFilter ()

Gets the current notification interruption filter active on the host.

The interruption filter defines which notifications are allowed to interrupt the user (e.g. via sound & vibration) and is applied globally. Listeners can find out whether a specific notification matched the interruption filter via matchesInterruptionFilter().

The current filter may differ from the previously requested filter if the notification host does not support or refuses to apply the requested filter, or if another component changed the filter in the meantime.

Listen for updates using onInterruptionFilterChanged(int).

The service should wait for the onListenerConnected() event before performing this operation.

Returns
int One of the INTERRUPTION_FILTER_ constants, or INTERRUPTION_FILTER_UNKNOWN when unavailable.

getCurrentListenerHints

added in API level 21
int getCurrentListenerHints ()

Gets the set of hints representing current state.

The current state may differ from the requested state if the hint represents state shared across all listeners or a feature the notification host does not support or refuses to grant.

The service should wait for the onListenerConnected() event before performing this operation.

Returns
int Zero or more of the HINT_ constants.

getCurrentRanking

added in API level 21
NotificationListenerService.RankingMap getCurrentRanking ()

Returns current ranking information.

The returned object represents the current ranking snapshot and only applies for currently active notifications.

Generally you should use the RankingMap that is passed with events such as onNotificationPosted(StatusBarNotification, RankingMap), onNotificationRemoved(StatusBarNotification, RankingMap), and so on. This method should only be used when needing access outside of such events, for example to retrieve the RankingMap right after initialization.

The service should wait for the onListenerConnected() event before performing this operation.

Returns
NotificationListenerService.RankingMap A NotificationListenerService.RankingMap object providing access to ranking information

getNotificationChannelGroups

added in API level 26
List<NotificationChannelGroup> getNotificationChannelGroups (String pkg, 
                UserHandle user)

Returns all notification channel groups belonging to the given package for a given user.

This method will throw a security exception if you don't have access to notifications for the given user.

The caller must have an associated device in order to use this method.

Parameters
pkg String: The package to retrieve channel groups for.

This value must never be null.

user UserHandle

This value must never be null.

Returns
List<NotificationChannelGroup>

getNotificationChannels

added in API level 26
List<NotificationChannel> getNotificationChannels (String pkg, 
                UserHandle user)

Returns all notification channels belonging to the given package for a given user.

This method will throw a security exception if you don't have access to notifications for the given user.

The caller must have an associated device in order to use this method.

Parameters
pkg String: The package to retrieve channels for.

This value must never be null.

user UserHandle

This value must never be null.

Returns
List<NotificationChannel>

getSnoozedNotifications

added in API level 26
StatusBarNotification[] getSnoozedNotifications ()

Like getActiveNotifications(), but returns the list of currently snoozed notifications, for all users this listener has access to.

The service should wait for the onListenerConnected() event before performing this operation.

Returns
StatusBarNotification[] An array of snoozed notifications, sorted in natural order.

onBind

added in API level 18
IBinder onBind (Intent intent)

This is not the lifecycle event you are looking for.

The service should wait for the onListenerConnected() event before performing any operations.

Parameters
intent Intent: The Intent that was used to bind to this service, as given to Context.bindService. Note that any extras that were included with the Intent at that point will not be seen here.

Returns
IBinder Return an IBinder through which clients can call on to the service.

onDestroy

added in API level 18
void onDestroy ()

Called by the system to notify a Service that it is no longer used and is being removed. The service should clean up any resources it holds (threads, registered receivers, etc) at this point. Upon return, there will be no more calls in to this Service object and it is effectively dead. Do not call this method directly.

onInterruptionFilterChanged

added in API level 21
void onInterruptionFilterChanged (int interruptionFilter)

Implement this method to be notified when the interruption filter changed.

Parameters
interruptionFilter int: The current interruption filter.

onListenerConnected

added in API level 21
void onListenerConnected ()

Implement this method to learn about when the listener is enabled and connected to the notification manager. You are safe to call getActiveNotifications() at this time.

onListenerDisconnected

added in API level 24
void onListenerDisconnected ()

Implement this method to learn about when the listener is disconnected from the notification manager.You will not receive any events after this call, and may only call requestRebind(ComponentName) at this time.

onListenerHintsChanged

added in API level 21
void onListenerHintsChanged (int hints)

Implement this method to be notified when the Listener hints change.

Parameters
hints int: The current listener hints.

onNotificationChannelGroupModified

added in API level 26
void onNotificationChannelGroupModified (String pkg, 
                UserHandle user, 
                NotificationChannelGroup group, 
                int modificationType)

Implement this method to learn about notification channel group modifications.

The caller must have an associated device in order to receive this callback.

Parameters
pkg String: The package the group belongs to.

user UserHandle: The user on which the change was made.

group NotificationChannelGroup: The group that has changed.

modificationType int: One of NOTIFICATION_CHANNEL_OR_GROUP_ADDED, NOTIFICATION_CHANNEL_OR_GROUP_UPDATED, NOTIFICATION_CHANNEL_OR_GROUP_DELETED.

onNotificationChannelModified

added in API level 26
void onNotificationChannelModified (String pkg, 
                UserHandle user, 
                NotificationChannel channel, 
                int modificationType)

Implement this method to learn about notification channel modifications.

The caller must have an associated device in order to receive this callback.

Parameters
pkg String: The package the channel belongs to.

user UserHandle: The user on which the change was made.

channel NotificationChannel: The channel that has changed.

modificationType int: One of NOTIFICATION_CHANNEL_OR_GROUP_ADDED, NOTIFICATION_CHANNEL_OR_GROUP_UPDATED, NOTIFICATION_CHANNEL_OR_GROUP_DELETED.

onNotificationPosted

added in API level 21
void onNotificationPosted (StatusBarNotification sbn, 
                NotificationListenerService.RankingMap rankingMap)

Implement this method to learn about new notifications as they are posted by apps.

Parameters
sbn StatusBarNotification: A data structure encapsulating the original Notification object as well as its identifying information (tag and id) and source (package name).

rankingMap NotificationListenerService.RankingMap: The current ranking map that can be used to retrieve ranking information for active notifications, including the newly posted one.

onNotificationPosted

added in API level 18
void onNotificationPosted (StatusBarNotification sbn)

Implement this method to learn about new notifications as they are posted by apps.

Parameters
sbn StatusBarNotification: A data structure encapsulating the original Notification object as well as its identifying information (tag and id) and source (package name).

onNotificationRankingUpdate

added in API level 21
void onNotificationRankingUpdate (NotificationListenerService.RankingMap rankingMap)

Implement this method to be notified when the notification ranking changes.

Parameters
rankingMap NotificationListenerService.RankingMap: The current ranking map that can be used to retrieve ranking information for active notifications.

onNotificationRemoved

added in API level 18
void onNotificationRemoved (StatusBarNotification sbn)

Implement this method to learn when notifications are removed.

This might occur because the user has dismissed the notification using system UI (or another notification listener) or because the app has withdrawn the notification.

NOTE: The StatusBarNotification object you receive will be "light"; that is, the result from getNotification() may be missing some heavyweight fields such as contentView and largeIcon. However, all other fields on StatusBarNotification, sufficient to match this call with a prior call to onNotificationPosted(StatusBarNotification), will be intact.

Parameters
sbn StatusBarNotification: A data structure encapsulating at least the original information (tag and id) and source (package name) used to post the Notification that was just removed.

onNotificationRemoved

added in API level 21
void onNotificationRemoved (StatusBarNotification sbn, 
                NotificationListenerService.RankingMap rankingMap)

Implement this method to learn when notifications are removed.

This might occur because the user has dismissed the notification using system UI (or another notification listener) or because the app has withdrawn the notification.

NOTE: The StatusBarNotification object you receive will be "light"; that is, the result from getNotification() may be missing some heavyweight fields such as contentView and largeIcon. However, all other fields on StatusBarNotification, sufficient to match this call with a prior call to onNotificationPosted(StatusBarNotification), will be intact.

Parameters
sbn StatusBarNotification: A data structure encapsulating at least the original information (tag and id) and source (package name) used to post the Notification that was just removed.

rankingMap NotificationListenerService.RankingMap: The current ranking map that can be used to retrieve ranking information for active notifications.

onNotificationRemoved

added in API level 26
void onNotificationRemoved (StatusBarNotification sbn, 
                NotificationListenerService.RankingMap rankingMap, 
                int reason)

Implement this method to learn when notifications are removed and why.

This might occur because the user has dismissed the notification using system UI (or another notification listener) or because the app has withdrawn the notification.

NOTE: The StatusBarNotification object you receive will be "light"; that is, the result from getNotification() may be missing some heavyweight fields such as contentView and largeIcon. However, all other fields on StatusBarNotification, sufficient to match this call with a prior call to onNotificationPosted(StatusBarNotification), will be intact.

Parameters
sbn StatusBarNotification: A data structure encapsulating at least the original information (tag and id) and source (package name) used to post the Notification that was just removed.

rankingMap NotificationListenerService.RankingMap: The current ranking map that can be used to retrieve ranking information for active notifications.

reason int: see REASON_LISTENER_CANCEL, etc.

requestInterruptionFilter

added in API level 21
void requestInterruptionFilter (int interruptionFilter)

Sets the desired interruption filter.

This is merely a request, the host may or may not choose to apply the requested interruption filter depending on other listener requests or other global state.

Listen for updates using onInterruptionFilterChanged(int).

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
interruptionFilter int: One of the INTERRUPTION_FILTER_ constants.

requestListenerHints

added in API level 21
void requestListenerHints (int hints)

Sets the desired listener hints.

This is merely a request, the host may or may not choose to take action depending on other listener requests or other global state.

Listen for updates using onListenerHintsChanged(int).

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
hints int: One or more of the HINT_ constants.

requestRebind

added in API level 24
void requestRebind (ComponentName componentName)

Request that the listener be rebound, after a previous call to requestUnbind().

This method will fail for listeners that have not been granted the permission by the user.

Parameters
componentName ComponentName

requestUnbind

added in API level 24
void requestUnbind ()

Request that the service be unbound.

Once this is called, you will no longer receive updates and no method calls are guaranteed to be successful, until you next receive the onListenerConnected() event. The service will likely be killed by the system after this call.

The service should wait for the onListenerConnected() event before performing this operation. I know it's tempting, but you must wait.

setNotificationsShown

added in API level 23
void setNotificationsShown (String[] keys)

Inform the notification manager that these notifications have been viewed by the user. This should only be called when there is sufficient confidence that the user is looking at the notifications, such as when the notifications appear on the screen due to an explicit user interaction.

The service should wait for the onListenerConnected() event before performing this operation.

Parameters
keys String: Notifications to mark as seen.

snoozeNotification

added in API level 26
void snoozeNotification (String key, 
                long durationMs)

Inform the notification manager about snoozing a specific notification.

Use this if your listener has a user interface that allows the user to snooze a notification for a time. It should be called after the user snoozes a single notification using your UI; upon being informed, the notification manager will actually remove the notification and you will get an onNotificationRemoved(StatusBarNotification) callback. When the snoozing period expires, you will get a onNotificationPosted(StatusBarNotification, RankingMap) callback for the notification.

Parameters
key String: The key of the notification to snooze

durationMs long: A duration to snooze the notification for, in milliseconds.

updateNotificationChannel

added in API level 26
void updateNotificationChannel (String pkg, 
                UserHandle user, 
                NotificationChannel channel)

Updates a notification channel for a given package for a given user. This should only be used to reflect changes a user has made to the channel via the listener's user interface.

This method will throw a security exception if you don't have access to notifications for the given user.

The caller must have an associated device in order to use this method.

Parameters
pkg String: The package the channel belongs to.

This value must never be null.

user UserHandle: The user the channel belongs to.

This value must never be null.

channel NotificationChannel: the channel to update.

This value must never be null.

Protected methods

attachBaseContext

added in API level 18
void attachBaseContext (Context base)

Set the base context for this ContextWrapper. All calls will then be delegated to the base context. Throws IllegalStateException if a base context has already been set.

Parameters
base Context: The new base context for this wrapper.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.