sunbetAPP下载
史上最全Android应用角标适配方法
Android 8.0之前原生是不支持应用角标的,是各个手机厂商自己在系统中实现的应用角标,并且部分厂商提供了设置的方式,所以需要对各个厂商的系统进行适配。
在下面的实现代码中,有很多公用的代码,我们提取出来一些公用方法,代码如下:
小米在MIUI6及以上版本中是通过发送通知来设置角标的。当APP向通知栏发送了一条通知 (通知不带进度条并且用户可以删除的),那么桌面APP icon角标就会显示1。
此时app显示的角标数是和通知栏里app发送的通知数对应的,即向通知栏发送了多少通知就会显示多少角标。
可以通过反射机制来定义每次通知的消息个数,应用的角标数为每条通知定义的通知个数的总和,如下图所示:
我们发送了两条通知,一条通知为5个消息,一条为10个消息,应用角标显示为15个。此时,如果用户点击或移除掉5条消息的那个通知,应用角标会变成10。
另外,仅在APP在后台时收到通知会显示角标,而APP在前台时不会显示,APP被杀掉后通知及角标消失。
可以通过ContentResolver方法直接设置应用角标,且应用在前台和被杀掉后仍可显示。
旧款的OPPO手机有两种方法设置,没有测试机测试,不知道是否可行,实现代码如下:
新款的OPPO仅支持内置应用、微信和QQ显示角标,若要使用角标功能,必须提交申请,审核通过了才能开放,官方给的具体审核标准如下:
b) 国内外各区域用户量排名Top5的三方即时通讯类应用,且只允许显示即时通信消息类通知(如QQ、微信、facebook、line);
c) OPPO公司内部费商业化及运营性质的办公类型即时通信应用(如Teamtalk);
目前可能仅支持系统应用、微信和QQ,不支持支付宝,未找到设置角标相关文档。
仅支持通过通知设置角标,且角标数字为收到通知的条数,无法自定义角标数目。
可通过通知设置角标数量,和小米类似,不同之处是只要通知栏的通知一直存在,数字就一直存在,且应用在前台仍可通过通知设置。
Android 8.0及之后的版本Google官方API支持通过发送系统通知的方式设置应用角标,但是不支持显示数量,而是一个小点儿,如下图所示。
在发送通知时可以设置消息数量,部分手机在长按图标时会显示所有通知设置的数量的总和。如上图所示,该示例中我们发送了两条通知,一条设置消息数量为88,一条为12,所以总和显示为100。
最后推荐一下我做的网站,玩Android:,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!
最后推荐一下我做的网站,玩Android:,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!
- 急问谁知道河东太阳城紫玉园2013.12.19
- 史上最全Android应用角标适配方法2013.12.19
- 农村自家修的房子装电(安装明线用线槽还是管好?)需2013.12.19
- NASA发现“超级地球”: 或适宜人类居住2013.12.19
- 昆明地铁4号线供电系统施工全面铺开 第一根接触轨开始2013.12.19