全国免费服务热线

sunbetAPP下载

史上最全Android应用角标适配方法

来源:原创 编辑:admin 时间:2019-08-21 23:27
分享到:

  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:,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!

在线客服
售前咨询
  • 点击这里给我发消息
售后服务
  • 点击这里给我发消息