我刚刚注意到NotificationManager
的一些函数处理了一个名为AutomaticZenRule
的类:
和其他人......
查看AutomaticZenRule的文档,它仍然没有说明它是什么,它可以用于什么:
zen模式的规则实例信息。
在互联网上搜索,我只能在Commonsware blog post中看到,他们想知道它是什么:
目前还不清楚AutomaticZenRule是什么......
我几乎没有发现它。不是“禅模式”而不是“AutomaticZenRule”。
什么是“禅模式”?
什么是“AutomaticZenRule”,我该怎么办?它与通知有什么关系?
Android N上有什么特别之处,这个版本上添加了这个API吗?
是否有使用它的样本?
答案 0 :(得分:1)
从挖掘到其他可用文档,我能够在某种程度上理解ZenMode(虽然它可以是我自己的版本而不是正确的版本)。
我的理解如下 -
Zen模式是Do not Disturb
模式,现在可以自动启用最新更新,这取决于诸如一天中晚些时候等因素,AutomaticZenrule
可以是在请勿打扰模式下,希望通知不被屏蔽或抑制的应用程序使用。
为此,您的应用程序应通过将用户发送到与系统意图操作ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
匹配的活动来请求策略访问。
如果用户已授予对您的应用的通知政策的访问权限,那么即使在请勿打扰模式下,您也可以设置优先级通知。因此AutomaticZenrule
对于说明应用程序的通知不被抑制的系统起着至关重要的作用。
虽然,我没有正在运行的示例代码,我想它应该在类似的行上,如启用设备管理代码或请求权限用例。
感谢你,我得阅读一些新内容:)
答案 1 :(得分:1)
禅宗模式只是免打扰(DND)模式的另一个名称。 Android可以根据规则激活DND模式。这些规则可以由系统提供,也可以由第三方应用提供。
在以下屏幕截图中,您可以看到两个系统提供的规则以及第三方应用程序“ Pixel Ambient Services”提供的“ Driving”规则:
AutomaticZenRule
可以将您自己的规则集成到Android系统中。要整合自己的规则,您必须遵循以下粗略步骤:
android.permission.ACCESS_NOTIFICATION_POLICY
)的足够权限。有关详细信息,请参见NotificationManager.isNotificationPolicyAccessGranted()
。为您的规则添加活动:
<activity android:name="MyRuleConfigurationActivity">
<meta-data android:name="android.service.zen.automatic.ruleType" android:value="My Rule" />
<intent-filter>
<action android:name="android.app.action.AUTOMATIC_ZEN_RULE"/>
</intent-filter>
</activity>
只要用户想要创建或编辑指定规则类型的规则,Android就会显示您的活动。在后一种情况下,Android将在NotificationManager#EXTRA_AUTOMATIC_RULE_ID
中提供现有规则的ID。要将活动中的更改传播回android,您需要构造一个AutomaticZenRule
实例并调用NotificationManager.addAutomaticZenRule
/ updateAutomaticZenRule
。
在那之后,您可以通过调用NotificationManager.setAutomaticZenRuleState
来告诉Android您的规则条件当前满足/不满足。