MIUI显示桌面应用角标权限说明

作者&投稿:闳都 (若有异议请与网页底部的电邮联系)
在应用开启”显示桌面图标角标“权限的前提下,当应用发通知在通知显示后,通知栏会通知桌面更新应用图标角标。

角标数值的计算逻辑是,统计应用在通知栏里显示的非常驻类通知(可手动清除的通知),累加其messageCount值。

每条通知的messageCount值默认为1,开发者可以通过反射的方式设置messageCount值,可参考开发者文档: MIUI 6 至 MIUI 11 桌面角标适配说明 。

用户在桌面点击应用图标启动应用时,会同时隐藏掉应用角标。直到应用发送了新通知,或者更新了通知的messageCount值后,才会重新显示出角标。

Q:应用发送了通知,桌面应用角标没有显示出来。
A:首先打开应用通知设置页面,在”设置-通知管理“里点击应用,查看”显示桌面图标角标“开关是否开启。大部分应用默认是关闭状态。
其次确认通知栏中是否有该应用的非常驻类通知(可手动清除的通知)。
最后需要确认下通知的messageCount值是否正确。

Q:国外某些聊天类应用接收消息发送通知后,桌面角标始终显示为 1。
A:当同一个联系人发来新消息后,这类应用均采用更新通知内容实现,也就是通知栏中通知数量始终只有一条,因而角标值显示为1。
如果应用想要定制显示的角标值,可参考: MIUI 6 至 MIUI 11 桌面角标适配说明 。

Q:桌面应用图标显示角标,在最近任务中关闭应用,角标消失。
A:在最近任务关闭应用后,会清除掉应用的所有通知,因此桌面应用角标会隐藏。

Q:桌面应用图标显示角标,点击应用图标后,角标消失。
A:点击应用图标后,会默认隐藏掉应用图标角标。
可通过如下两种方式重新显示:
方式1:发一条新的通知,其通知id与之前发送的通知id不重复。
方式2:更新已发送通知的messageCount值。

Q:为什么桌面应用角标最大显示值是9。
A:在通知栏显示的应用发送的通知是有条数限制的,每一个应用最多只能显示10条通知。
在应用没有指定groupkey的情况下,超过3条系统会默认发一条autosummary的通知,将应用的通知成组显示。也就是说,在这种情况下,用户可见的通知数量是9条,在桌面显示的应用角标值也是9。
如果应用想要定制显示的角标值,可参考: MIUI 6 至 MIUI 11 桌面角标适配说明 。

Q:是否有其他方式设置messageCount值?
A:有如下两种方式:
方式1:notification.number = messageCount;
方式2:notification.extras.putInt("miui.messageCount", messageCount);

Q:通过开发者文档设置了messageCount值,但桌面应用角标显示的值不符合预期。
A:桌面应用角标数值是累加应用在通知栏显示的非常驻类通知(可手动清除的通知)的messageCount值。即并不是开发者设置了某一条通知的messageCount值后,桌面应用角标显示的就是设置的messageCount值。

Q:如何查看通知的messageCount值
A:使用MIUI12手机连接电脑,在命令行执行:adb shell dumpsys activity service SystemUIService ,搜索 active notifications 字段可查看当前通知栏显示的所有通知。
通过 pkg+通知id 找到对应的通知,查看其messageCount值是否符合预期。

~