在应用开启”显示桌面图标角标“权限的前提下,当应用发通知在通知显示后,通知栏会通知桌面更新应用图标角标。角标数值的计算逻辑是,统计应用在通知栏里显示的除媒体通知、进度条通知和常驻通知外的所有通知,累加其messageCount值。每条通知的messageCount值默认为1,开发者可以通过反射的方式设置messageCount值,可参考开发者文档:桌面应用角标适配说明。用户在桌面点击应用图标启动应用时,会同时隐藏掉应用角标。直到应用发送了新通知,或者更新了通知的messageCount值后,才会重新显示出角标。
首先打开应用通知设置页面,在”设置-通知管理“里点击应用,查看”显示桌面图标角标“开关是否开启。大部分应用默认是关闭状态。其次确认通知栏中是否有该应用的通知,当然不包括媒体通知、进度条通知和常驻通知这三种类型通知,因为默认不会统计。 最后需要确认下通知的messageCount值是否正确。
在最近任务关闭应用后,会清除掉应用的所有通知,因此桌面应用角标会隐藏。
点击应用图标后,会默认隐藏掉应用图标角标。有如下两种方式可以重新显示:
因此,想要应用角标重新显示出来的前提是,应用需要再次发一条通知。
在通知栏显示的应用发送的通知是有条数限制的,每一个应用最多只能显示10条通知。在应用没有指定groupkey的情况下,超过3条系统会默认发一条autosummary的通知,将应用的通知成组显示。也就是说,在这种情况下,用户可见的通知数量是9条,在桌面显示的应用角标值也是9。开发者可以通过设置通知messageCount值来突破这一限制,详见:桌面应用角标适配说明。
桌面应用角标数值是累加应用在通知栏显示的除媒体、进度条和常驻通知外的所有通知的messageCount值。即并不是开发者设置了某一条通知的messageCount值后,桌面应用角标显示的就是设置的messageCount值。
在命令行执行:adb shell dumpsys activity service SystemUIService ,搜索 active notifications 字段可查看当前通知栏显示的所有通知。通过 pkg+通知id 找到对应的通知,查看其messageCount值是否符合预期。