Most visited

Recently visited

Added in API level 1

NotificationManager

public class NotificationManager
extends Object

java.lang.Object
   ↳ android.app.NotificationManager


通知用户发生事件的类。 这就是你告诉用户背景中发生了什么事情。

通知可以采取不同的形式:

每个通知方法都采用一个int id参数和一个String标记参数(可能为null 如果标签未指定,则使用这些参数形成一对(标签,ID)或( null ,ID)。 该对从您的应用程序向系统标识此通知,以便该对在您的应用程序中应该是唯一的。 如果您使用当前处于活动状态的(tag,id)对和一组新通知参数调用其中一个通知方法,它将被更新。 例如,如果您传递一个新的状态栏图标,状态栏中的旧图标将被替换为新图标。 这也是您传递给cancel(int)cancel(String, int)方法以清除此通知的相同标记和ID。

你不直接实例化这个类; 相反,通过getSystemService(Class ) 检索它。

Developer Guides

有关创建通知的指导,请阅读 Status Bar Notifications开发人员指南。

也可以看看:

Summary

Nested classes

class NotificationManager.Policy

通知政策配置。

Constants

String ACTION_INTERRUPTION_FILTER_CHANGED

当getCurrentInterruptionFilter()状态改变时广播的意图。

String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED

isNotificationPolicyAccessGranted()的状态发生变化时广播的意图。

String ACTION_NOTIFICATION_POLICY_CHANGED

当getNotificationPolicy()状态改变时广播的意图。

int IMPORTANCE_DEFAULT

默认通知重要性:无处不在,允许发出噪音,但不会在视觉上侵入。

int IMPORTANCE_HIGH

更高的通知重要性:无处不在,允许噪音和偷看。

int IMPORTANCE_LOW

低通知重要性:无处不在,但不侵入。

int IMPORTANCE_MAX

最高通知重要性:随处显示,允许制作噪音,偷看,并使用全屏意图。

int IMPORTANCE_MIN

最低通知重要性:只显示在阴影下,低于折叠。

int IMPORTANCE_NONE

不重要的通知:无处显示,被阻止。

int IMPORTANCE_UNSPECIFIED

意味着用户没有表达重要性的价值。

int INTERRUPTION_FILTER_ALARMS

Interruption filter常量 - 仅限警报中断过滤器 - 除类别 CATEGORY_ALARM以外的所有通知都被抑制。

int INTERRUPTION_FILTER_ALL

Interruption filter常量 - 正常中断过滤器 - 不抑制通知。

int INTERRUPTION_FILTER_NONE

Interruption filter常量 - 无中断过滤器 - 所有通知都被抑制,并且所有音频流(用于电话呼叫的音频流除外)和振动均被静音。

int INTERRUPTION_FILTER_PRIORITY

Interruption filter常量 - 优先级中断过滤器 - 除符合优先级标准的通知外,所有通知都被抑制。

int INTERRUPTION_FILTER_UNKNOWN

Interruption filter常数 - 当值由于任何原因不可用时返回。

Public methods

String addAutomaticZenRule(AutomaticZenRule automaticZenRule)

创建给定的禅规则。

boolean areNotificationsEnabled()

返回来自调用包的通知是否被阻止。

void cancel(String tag, int id)

取消先前显示的通知。

void cancel(int id)

取消先前显示的通知。

void cancelAll()

取消先前显示的所有通知。

StatusBarNotification[] getActiveNotifications()

恢复活动通知的列表:通过调用应用发布的尚未被用户 cancel(String, int)的应用或 cancel(String, int)编辑的列表。

AutomaticZenRule getAutomaticZenRule(String id)

使用给定的ID返回AutomaticZenRule,如果它存在并且调用者有权访问。

Map<StringAutomaticZenRule> getAutomaticZenRules()

返回调用者拥有的AutomaticZenRules。

final int getCurrentInterruptionFilter()

获取当前的通知中断过滤器。

int getImportance()

返回来自调用包的通知的用户指定重要性。

NotificationManager.Policy getNotificationPolicy()

获取当前通知政策。

boolean isNotificationPolicyAccessGranted()

检查是否可以读取/修改调用包的通知策略。

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

发布通知以显示在状态栏中。

void notify(int id, Notification notification)

发布通知以显示在状态栏中。

boolean removeAutomaticZenRule(String id)

使用给定的ID删除自动禅规则。

final void setInterruptionFilter(int interruptionFilter)

设置当前的通知中断过滤器。

void setNotificationPolicy(NotificationManager.Policy policy)

设置当前通知政策。

boolean updateAutomaticZenRule(String id, AutomaticZenRule automaticZenRule)

更新给定的禅规则。

Inherited methods

From class java.lang.Object

Constants

ACTION_INTERRUPTION_FILTER_CHANGED

Added in API level 23
String ACTION_INTERRUPTION_FILTER_CHANGED

当getCurrentInterruptionFilter()状态改变时广播的意图。 这个广播只发送给已注册的接收者。

常量值:“android.app.action.INTERRUPTION_FILTER_CHANGED”

ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED

Added in API level 23
String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED

isNotificationPolicyAccessGranted()的状态改变时广播的意图。 此广播仅发送给注册的接收者,并仅发送给已更改的应用程序。

常量值:“android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED”

ACTION_NOTIFICATION_POLICY_CHANGED

Added in API level 23
String ACTION_NOTIFICATION_POLICY_CHANGED

当getNotificationPolicy()状态改变时广播的意图。 这个广播只发送给已注册的接收者。

常量值:“android.app.action.NOTIFICATION_POLICY_CHANGED”

IMPORTANCE_DEFAULT

Added in API level 24
int IMPORTANCE_DEFAULT

默认通知重要性:无处不在,允许发出噪音,但不会在视觉上侵入。

常量值:3(0x00000003)

IMPORTANCE_HIGH

Added in API level 24
int IMPORTANCE_HIGH

更高的通知重要性:无处不在,允许噪音和偷看。

常量值:4(0x00000004)

IMPORTANCE_LOW

Added in API level 24
int IMPORTANCE_LOW

低通知重要性:无处不在,但不侵入。

常量值:2(0x00000002)

IMPORTANCE_MAX

Added in API level 24
int IMPORTANCE_MAX

最高通知重要性:随处显示,允许制作噪音,偷看,并使用全屏意图。

常量值:5(0x00000005)

IMPORTANCE_MIN

Added in API level 24
int IMPORTANCE_MIN

最低通知重要性:只显示在阴影下,低于折叠。

常数值:1(0x00000001)

IMPORTANCE_NONE

Added in API level 24
int IMPORTANCE_NONE

不重要的通知:无处显示,被阻止。

常量值:0(0x00000000)

IMPORTANCE_UNSPECIFIED

Added in API level 24
int IMPORTANCE_UNSPECIFIED

意味着用户没有表达重要性的价值。 此值用于保留首选项,并且不应与实际通知关联。

常量值:-1000(0xfffffc18)

INTERRUPTION_FILTER_ALARMS

Added in API level 23
int INTERRUPTION_FILTER_ALARMS

Interruption filter常量 - 仅限警报中断过滤器 - 除类别CATEGORY_ALARM以外的所有通知都被抑制。 一些音频流被静音。

常量值:4(0x00000004)

INTERRUPTION_FILTER_ALL

Added in API level 23
int INTERRUPTION_FILTER_ALL

Interruption filter常量 - 正常中断过滤器 - 不抑制通知。

常数值:1(0x00000001)

INTERRUPTION_FILTER_NONE

Added in API level 23
int INTERRUPTION_FILTER_NONE

Interruption filter常量 - 无中断过滤器 - 所有通知都被抑制,所有音频流(除了用于电话呼叫的音频流)和振动均被静音。

常量值:3(0x00000003)

INTERRUPTION_FILTER_PRIORITY

Added in API level 23
int INTERRUPTION_FILTER_PRIORITY

Interruption filter常量 - 优先级中断过滤器 - 除符合优先级标准的通知外,所有通知都被抑制。 一些音频流被静音。 priorityCallSenderspriorityCategoriespriorityMessageSenders定义或查询这个标准。 用户可以额外指定可绕过此中断过滤器的软件包。

常量值:2(0x00000002)

INTERRUPTION_FILTER_UNKNOWN

Added in API level 23
int INTERRUPTION_FILTER_UNKNOWN

Interruption filter常数 - 当值由于任何原因不可用时返回。

常量值:0(0x00000000)

Public methods

addAutomaticZenRule

Added in API level 24
String addAutomaticZenRule (AutomaticZenRule automaticZenRule)

创建给定的禅规则。

如果策略访问被授予此包,则抛出SecurityException。 isNotificationPolicyAccessGranted()

Parameters
automaticZenRule AutomaticZenRule: the rule to create.
Returns
String The id of the newly created rule; null if the rule could not be created.

areNotificationsEnabled

Added in API level 24
boolean areNotificationsEnabled ()

返回来自调用包的通知是否被阻止。

Returns
boolean

cancel

Added in API level 5
void cancel (String tag, 
                int id)

取消先前显示的通知。 如果是暂时的,视图将被隐藏。 如果它是持久的,它将从状态栏中删除。

Parameters
tag String
id int

cancel

Added in API level 1
void cancel (int id)

取消先前显示的通知。 如果是暂时的,视图将被隐藏。 如果它是持久的,它将从状态栏中删除。

Parameters
id int

cancelAll

Added in API level 1
void cancelAll ()

取消先前显示的所有通知。 有关详细行为,请参阅cancel(int)

getActiveNotifications

Added in API level 23
StatusBarNotification[] getActiveNotifications ()

恢复活动通知的列表:已由调用应用发布但尚未被用户解雇的应用或cancel(String, int)编辑的列表。 每个通知都嵌入到StatusBarNotification对象中,其中包括提供给notify() (通过getTag()getId() )的原始tagid以及原始对象Notification的副本(通过getNotification() )。

Returns
StatusBarNotification[] An array of StatusBarNotification.

getAutomaticZenRule

Added in API level 24
AutomaticZenRule getAutomaticZenRule (String id)

使用给定的ID返回AutomaticZenRule,如果它存在并且调用者有权访问。

如果策略访问被授予此包,则抛出SecurityException。 isNotificationPolicyAccessGranted()

如果没有与给定id相匹配的禅规则,或者调用软件包不拥有匹配规则,则返回null。 getOwner()

Parameters
id String
Returns
AutomaticZenRule

getAutomaticZenRules

Added in API level 24
Map<StringAutomaticZenRule> getAutomaticZenRules ()

返回调用者拥有的AutomaticZenRules。

如果策略访问被授予此包,则抛出SecurityException。 isNotificationPolicyAccessGranted()

Returns
Map<StringAutomaticZenRule>

getCurrentInterruptionFilter

Added in API level 23
int getCurrentInterruptionFilter ()

获取当前的通知中断过滤器。

中断过滤器定义哪些通知被允许中断用户(例如,通过声音和振动)并且被全局应用。

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

getImportance

Added in API level 24
int getImportance ()

返回来自调用包的通知的用户指定重要性。

Returns
int An importance level, such as IMPORTANCE_DEFAULT.

getNotificationPolicy

Added in API level 23
NotificationManager.Policy getNotificationPolicy ()

获取当前通知政策。

只有在授予此软件包策略访问权限时才可用。 isNotificationPolicyAccessGranted()

Returns
NotificationManager.Policy

isNotificationPolicyAccessGranted

Added in API level 23
boolean isNotificationPolicyAccessGranted ()

检查是否可以读取/修改调用包的通知策略。

如果调用包可以读取/修改通知策略,则返回true。

通过将用户发送到与系统意向操作 ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS匹配的活动请求策略访问。

使用 ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED来监听用户授权或拒绝此访问。

Returns
boolean

notify

Added in API level 5
void notify (String tag, 
                int id, 
                Notification notification)

发布通知以显示在状态栏中。 如果具有相同标签和ID的通知已由您的应用程序发布并且尚未取消,则会被更新的信息替换。

Parameters
tag String: A string identifier for this notification. May be null.
id int: An identifier for this notification. The pair (tag, id) must be unique within your application.
notification Notification: A Notification object describing what to show the user. Must not be null.

notify

Added in API level 1
void notify (int id, 
                Notification notification)

发布通知以显示在状态栏中。 如果具有相同ID的通知已由您的应用程序发布并且尚未取消,它将被更新的信息替换。

Parameters
id int: An identifier for this notification unique within your application.
notification Notification: A Notification object describing what to show the user. Must not be null.

removeAutomaticZenRule

Added in API level 24
boolean removeAutomaticZenRule (String id)

使用给定的ID删除自动禅规则。

如果策略访问被授予此包,则抛出SecurityException。 isNotificationPolicyAccessGranted()

呼叫者只能删除他们拥有的规则。 getOwner()

Parameters
id String: the id of the rule to delete.
Returns
boolean Whether the rule was successfully deleted.

setInterruptionFilter

Added in API level 23
void setInterruptionFilter (int interruptionFilter)

设置当前的通知中断过滤器。

中断过滤器定义哪些通知被允许中断用户(例如,通过声音和振动)并且被全局应用。

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

只有在授予此软件包策略访问权限时才可用。 isNotificationPolicyAccessGranted()

setNotificationPolicy

Added in API level 23
void setNotificationPolicy (NotificationManager.Policy policy)

设置当前通知政策。

只有在授予此软件包策略访问权限时才可用。 isNotificationPolicyAccessGranted()

Parameters
policy NotificationManager.Policy: The new desired policy.

updateAutomaticZenRule

Added in API level 24
boolean updateAutomaticZenRule (String id, 
                AutomaticZenRule automaticZenRule)

更新给定的禅规则。

如果策略访问被授予此包,则抛出SecurityException。 isNotificationPolicyAccessGranted()

呼叫者只能更新他们拥有的规则。 getOwner()

Parameters
id String: The id of the rule to update
automaticZenRule AutomaticZenRule: the rule to update.
Returns
boolean Whether the rule was successfully updated.

Hooray!