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
检索它。
有关创建通知的指导,请阅读 Status Bar Notifications开发人员指南。
Nested classes |
|
---|---|
class |
NotificationManager.Policy 通知政策配置。 |
Public methods |
|
---|---|
String |
addAutomaticZenRule(AutomaticZenRule automaticZenRule) 创建给定的禅规则。 |
boolean |
areNotificationsEnabled() 返回来自调用包的通知是否被阻止。 |
void |
cancel(String tag, int id) 取消先前显示的通知。 |
void |
cancel(int id) 取消先前显示的通知。 |
void |
cancelAll() 取消先前显示的所有通知。 |
StatusBarNotification[] |
getActiveNotifications() 恢复活动通知的列表:通过调用应用发布的尚未被用户 |
AutomaticZenRule |
getAutomaticZenRule(String id) 使用给定的ID返回AutomaticZenRule,如果它存在并且调用者有权访问。 |
Map<String, AutomaticZenRule> |
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
|
String ACTION_INTERRUPTION_FILTER_CHANGED
当getCurrentInterruptionFilter()状态改变时广播的意图。 这个广播只发送给已注册的接收者。
常量值:“android.app.action.INTERRUPTION_FILTER_CHANGED”
String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED
当isNotificationPolicyAccessGranted()
的状态改变时广播的意图。 此广播仅发送给注册的接收者,并仅发送给已更改的应用程序。
常量值:“android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED”
String ACTION_NOTIFICATION_POLICY_CHANGED
当getNotificationPolicy()状态改变时广播的意图。 这个广播只发送给已注册的接收者。
常量值:“android.app.action.NOTIFICATION_POLICY_CHANGED”
int IMPORTANCE_DEFAULT
默认通知重要性:无处不在,允许发出噪音,但不会在视觉上侵入。
常量值:3(0x00000003)
int IMPORTANCE_MAX
最高通知重要性:随处显示,允许制作噪音,偷看,并使用全屏意图。
常量值:5(0x00000005)
int IMPORTANCE_UNSPECIFIED
意味着用户没有表达重要性的价值。 此值用于保留首选项,并且不应与实际通知关联。
常量值:-1000(0xfffffc18)
int INTERRUPTION_FILTER_ALARMS
Interruption filter
常量 - 仅限警报中断过滤器 - 除类别CATEGORY_ALARM
以外的所有通知都被抑制。 一些音频流被静音。
常量值:4(0x00000004)
int INTERRUPTION_FILTER_ALL
Interruption filter
常量 - 正常中断过滤器 - 不抑制通知。
常数值:1(0x00000001)
int INTERRUPTION_FILTER_NONE
Interruption filter
常量 - 无中断过滤器 - 所有通知都被抑制,所有音频流(除了用于电话呼叫的音频流)和振动均被静音。
常量值:3(0x00000003)
int INTERRUPTION_FILTER_PRIORITY
Interruption filter
常量 - 优先级中断过滤器 - 除符合优先级标准的通知外,所有通知都被抑制。 一些音频流被静音。 见priorityCallSenders
, priorityCategories
, priorityMessageSenders
定义或查询这个标准。 用户可以额外指定可绕过此中断过滤器的软件包。
常量值:2(0x00000002)
int INTERRUPTION_FILTER_UNKNOWN
Interruption filter
常数 - 当值由于任何原因不可用时返回。
常量值:0(0x00000000)
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. |
boolean areNotificationsEnabled ()
返回来自调用包的通知是否被阻止。
Returns | |
---|---|
boolean |
void cancel (String tag, int id)
取消先前显示的通知。 如果是暂时的,视图将被隐藏。 如果它是持久的,它将从状态栏中删除。
Parameters | |
---|---|
tag |
String
|
id |
int
|
void cancel (int id)
取消先前显示的通知。 如果是暂时的,视图将被隐藏。 如果它是持久的,它将从状态栏中删除。
Parameters | |
---|---|
id |
int
|
StatusBarNotification[] getActiveNotifications ()
恢复活动通知的列表:已由调用应用发布但尚未被用户解雇的应用或cancel(String, int)
编辑的列表。 每个通知都嵌入到StatusBarNotification
对象中,其中包括提供给notify()
(通过getTag()
和getId()
)的原始tag
和id
以及原始对象Notification
的副本(通过getNotification()
)。
Returns | |
---|---|
StatusBarNotification[] |
An array of StatusBarNotification . |
AutomaticZenRule getAutomaticZenRule (String id)
使用给定的ID返回AutomaticZenRule,如果它存在并且调用者有权访问。
如果策略访问被授予此包,则抛出SecurityException。 见isNotificationPolicyAccessGranted()
。
如果没有与给定id相匹配的禅规则,或者调用软件包不拥有匹配规则,则返回null。 见getOwner()
。
Parameters | |
---|---|
id |
String
|
Returns | |
---|---|
AutomaticZenRule |
Map<String, AutomaticZenRule> getAutomaticZenRules ()
返回调用者拥有的AutomaticZenRules。
如果策略访问被授予此包,则抛出SecurityException。 见isNotificationPolicyAccessGranted()
。
Returns | |
---|---|
Map<String, AutomaticZenRule> |
int getCurrentInterruptionFilter ()
获取当前的通知中断过滤器。
中断过滤器定义哪些通知被允许中断用户(例如,通过声音和振动)并且被全局应用。
Returns | |
---|---|
int |
One of the INTERRUPTION_FILTER_ constants, or INTERRUPTION_FILTER_UNKNOWN when unavailable. |
int getImportance ()
返回来自调用包的通知的用户指定重要性。
Returns | |
---|---|
int |
An importance level, such as IMPORTANCE_DEFAULT . |
NotificationManager.Policy getNotificationPolicy ()
获取当前通知政策。
只有在授予此软件包策略访问权限时才可用。 见isNotificationPolicyAccessGranted()
。
Returns | |
---|---|
NotificationManager.Policy |
boolean isNotificationPolicyAccessGranted ()
检查是否可以读取/修改调用包的通知策略。
如果调用包可以读取/修改通知策略,则返回true。
通过将用户发送到与系统意向操作 ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
匹配的活动请求策略访问。
使用 ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED
来监听用户授权或拒绝此访问。
Returns | |
---|---|
boolean |
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. |
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. |
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. |
void setInterruptionFilter (int interruptionFilter)
设置当前的通知中断过滤器。
中断过滤器定义哪些通知被允许中断用户(例如,通过声音和振动)并且被全局应用。
Parameters | |
---|---|
interruptionFilter |
int
|
Returns | |
---|---|
void |
One of the INTERRUPTION_FILTER_ constants, or INTERRUPTION_FILTER_UNKNOWN when unavailable. 只有在授予此软件包策略访问权限时才可用。 见 |
void setNotificationPolicy (NotificationManager.Policy policy)
设置当前通知政策。
只有在授予此软件包策略访问权限时才可用。 见isNotificationPolicyAccessGranted()
。
Parameters | |
---|---|
policy |
NotificationManager.Policy : The new desired policy. |
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. |