NotificationManagerpublic 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}.
|
Fields Summary |
---|
private static String | TAG | private static boolean | localLOGV | public static final String | ACTION_EFFECTS_SUPPRESSOR_CHANGEDIntent 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 |
Methods Summary |
---|
public void | cancel(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 void | cancel(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 void | cancelAll()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 void | cancelAsUser(java.lang.String tag, int id, android.os.UserHandle user)
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.NotificationManager | from(android.content.Context context){@hide}
return (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
| public android.content.ComponentName | getEffectsSuppressor()
INotificationManager service = getService();
try {
return service.getEffectsSuppressor();
} catch (RemoteException e) {
return null;
}
| public static INotificationManager | getService()
if (sService != null) {
return sService;
}
IBinder b = ServiceManager.getService("notification");
sService = INotificationManager.Stub.asInterface(b);
return sService;
| public boolean | isSystemConditionProviderEnabled(java.lang.String path)
INotificationManager service = getService();
try {
return service.isSystemConditionProviderEnabled(path);
} catch (RemoteException e) {
return false;
}
| public boolean | matchesCallFilter(android.os.Bundle extras)
INotificationManager service = getService();
try {
return service.matchesCallFilter(extras);
} catch (RemoteException e) {
return false;
}
| 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.
notify(null, id, notification);
| public void | notify(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.
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 void | notifyAsUser(java.lang.String tag, int id, Notification notification, android.os.UserHandle user)
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) {
}
|
|