FileDocCategorySizeDatePackage
NotificationManager.javaAPI DocAndroid 5.1 API9902Thu Mar 12 22:22:10 GMT 2015android.app

NotificationManager

public class NotificationManager extends Object
Class to notify the user of events that happen. This is how you tell the user that something has happened in the background. {@more} 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 {@link String} tag parameter, which may be {@code null}. These parameters are used to form a pair (tag, id), or ({@code 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 {@link #cancel(int)} or {@link #cancel(String, int)} method to clear this notification.

You do not instantiate this class directly; instead, retrieve it through {@link android.content.Context#getSystemService}.

Developer Guides

For a guide to creating notifications, read the Status Bar Notifications developer guide.

see
android.app.Notification
see
android.content.Context#getSystemService

Fields Summary
private static String
TAG
private static boolean
localLOGV
public static final String
ACTION_EFFECTS_SUPPRESSOR_CHANGED
Intent that is broadcast when the state of {@link #getEffectsSuppressor()} changes. This broadcast is only sent to registered receivers.
private static INotificationManager
sService
private android.content.Context
mContext
Constructors Summary
NotificationManager(android.content.Context context, android.os.Handler handler)

        mContext = context;
    
Methods Summary
public voidcancel(int id)
Cancel a previously shown notification. If it's transient, the view will be hidden. If it's persistent, it will be removed from the status bar.

        cancel(null, id);
    
public voidcancel(java.lang.String tag, int id)
Cancel a previously shown notification. If it's transient, the view will be hidden. If it's persistent, it will be removed from the status bar.

        INotificationManager service = getService();
        String pkg = mContext.getPackageName();
        if (localLOGV) Log.v(TAG, pkg + ": cancel(" + id + ")");
        try {
            service.cancelNotificationWithTag(pkg, tag, id, UserHandle.myUserId());
        } catch (RemoteException e) {
        }
    
public voidcancelAll()
Cancel all previously shown notifications. See {@link #cancel} for the detailed behavior.

        INotificationManager service = getService();
        String pkg = mContext.getPackageName();
        if (localLOGV) Log.v(TAG, pkg + ": cancelAll()");
        try {
            service.cancelAllNotifications(pkg, UserHandle.myUserId());
        } catch (RemoteException e) {
        }
    
public voidcancelAsUser(java.lang.String tag, int id, android.os.UserHandle user)

hide

        INotificationManager service = getService();
        String pkg = mContext.getPackageName();
        if (localLOGV) Log.v(TAG, pkg + ": cancel(" + id + ")");
        try {
            service.cancelNotificationWithTag(pkg, tag, id, user.getIdentifier());
        } catch (RemoteException e) {
        }
    
public static android.app.NotificationManagerfrom(android.content.Context context)
{@hide}

        return (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    
public android.content.ComponentNamegetEffectsSuppressor()

hide

        INotificationManager service = getService();
        try {
            return service.getEffectsSuppressor();
        } catch (RemoteException e) {
            return null;
        }
    
public static INotificationManagergetService()

hide


      
       
    
        if (sService != null) {
            return sService;
        }
        IBinder b = ServiceManager.getService("notification");
        sService = INotificationManager.Stub.asInterface(b);
        return sService;
    
public booleanisSystemConditionProviderEnabled(java.lang.String path)

hide

        INotificationManager service = getService();
        try {
            return service.isSystemConditionProviderEnabled(path);
        } catch (RemoteException e) {
            return false;
        }
    
public booleanmatchesCallFilter(android.os.Bundle extras)

hide

        INotificationManager service = getService();
        try {
            return service.matchesCallFilter(extras);
        } catch (RemoteException e) {
            return false;
        }
    
public voidnotify(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.

param
id An identifier for this notification unique within your application.
param
notification A {@link Notification} object describing what to show the user. Must not be null.

        notify(null, id, notification);
    
public voidnotify(java.lang.String tag, int id, Notification notification)
Post 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.

param
tag A string identifier for this notification. May be {@code null}.
param
id An identifier for this notification. The pair (tag, id) must be unique within your application.
param
notification A {@link Notification} object describing what to show the user. Must not be null.

        int[] idOut = new int[1];
        INotificationManager service = getService();
        String pkg = mContext.getPackageName();
        if (notification.sound != null) {
            notification.sound = notification.sound.getCanonicalUri();
            if (StrictMode.vmFileUriExposureEnabled()) {
                notification.sound.checkFileUriExposed("Notification.sound");
            }
        }
        if (localLOGV) Log.v(TAG, pkg + ": notify(" + id + ", " + notification + ")");
        Notification stripped = notification.clone();
        Builder.stripForDelivery(stripped);
        try {
            service.enqueueNotificationWithTag(pkg, mContext.getOpPackageName(), tag, id,
                    stripped, idOut, UserHandle.myUserId());
            if (id != idOut[0]) {
                Log.w(TAG, "notify: id corrupted: sent " + id + ", got back " + idOut[0]);
            }
        } catch (RemoteException e) {
        }
    
public voidnotifyAsUser(java.lang.String tag, int id, Notification notification, android.os.UserHandle user)

hide

        int[] idOut = new int[1];
        INotificationManager service = getService();
        String pkg = mContext.getPackageName();
        if (notification.sound != null) {
            notification.sound = notification.sound.getCanonicalUri();
            if (StrictMode.vmFileUriExposureEnabled()) {
                notification.sound.checkFileUriExposed("Notification.sound");
            }
        }
        if (localLOGV) Log.v(TAG, pkg + ": notify(" + id + ", " + notification + ")");
        Notification stripped = notification.clone();
        Builder.stripForDelivery(stripped);
        try {
            service.enqueueNotificationWithTag(pkg, mContext.getOpPackageName(), tag, id,
                    stripped, idOut, user.getIdentifier());
            if (id != idOut[0]) {
                Log.w(TAG, "notify: id corrupted: sent " + id + ", got back " + idOut[0]);
            }
        } catch (RemoteException e) {
        }