日历应用无角标提醒
问题现象
刷机完成之后,所有应用均无角标显示
过程分析
- 观察现象发现是Launcher的通知使用权默认关闭导致所有应用的角标均无法出现
- 通过settings代码得知获取通知使用权的代码是由Settings .Secure数据库中的ENABLED_NOTIFICATION_LISTENERS来获取判断的,如果打开,这个key将把对应的应用包名记录其中,如下图
- 但是我们想做的一开始将Launcher的包名记录在默认配置中,而不是在调起Launcher后配置,也不想在每次初始化时都配置一次
解决方式
根据查看源码NotificationMangerService#NotificationListeners#loadDefaultsFromConfig(),发现通知使用权的默认配置是在defaultlisteneraccessPackages的xml中,在这个key里添加launcher包名,解决。
测试用例
Case 1:
- 刷机后查看launcher的默认通知使用权是否开启
- 设置一个日历的日程,到时间后查看是否有