有关 Android 应用桌面角标 (BadgeNumber) 实现的探讨

本文介绍了如何在 Android 系统下实现应用桌面角标 (BadgeNumber) 显示,包括现有开源库的问题、国产主流机型(华为、OPPO、vivo、小米)的适配方案,以及一种高扩展性的封装思路。通过参考 QQ 和微信的源码,提供了一种简洁的解决方案。
摘要由CSDN通过智能技术生成

【回复“1024”,送你一个特别推送】


原文作者:小强-贝聊移动

原文地址:http://www.jianshu.com/p/199a9238015f

特别声明:本文为小强-贝聊移动原创并授权发布,未经原作者允许请勿转载,转载请联系原作者

作者:小强 贝聊移动开发部 Android 工程师

前言:本文主要讲述了以下三方面:

  1. 怎么在 Android 系统下让自家的应用图标像 iOS 系统那样支持数字角标的显示?

  2. 在网上找不到现成的解决方案的情况下,该如何去寻找问题的突破口?

  3. 一种简洁性和扩展性都比较高的封装思路。

先放一个传送门:https://github.com/beiliao-mobile/BadgeNumberManager

1.Android 系统下如何支持应用桌面角标 (BadgeNumber)的显示

其实本来 Android 原生系统是不支持应用桌面角标 (BadgeNumber) 显示的。我们目前看到的能支持应用桌面角标显示的 Android 系统,都是第三方厂商自己定制的。通过实现一套自己的launcher并且提供外部接口给第三方应用来调用即可。

我们公司的 APP 里涉及到 IM 的功能。所以经常会有用户向客服反馈,为什么 QQ、微信都支持应用桌面角标的显示,但你们的 APP 却不行...... 本着用户就是上帝的原则,于是应用桌面角标显示的优化就提上了日程。其实,测试部门在之前就已经跟我们提过这事了,只不过当时正忙于项目开发,没时间优化。前段时间需求不多的时候,给公司的 Android 应用加上了桌面角标显示的支持。现在将这个优化的过程总结一下。

   目前已经存在的开源库

如果大家有接触过这方面的优化,应该很快就可以在搜索引擎上找到某个被推荐次数较多的开源库 ShortcutBadger:https://github.com/leolin310148/ShortcutBadger

虽然这个库适配的覆盖机型貌似很多,但在实际的测试中发现,某些方法可能对于目前市面上的国产流行机型已经不奏效了。所以,不建议大家直接将这个开源项目用到项目中去。作为学习和参考倒是一个不错的选择。而且,在实际方案抉择的过程中,我们发现,公司的 APP 主流机型排行榜中,前十的机型几乎被 OPPO、vivo、华为、小米这四个品牌屠榜了。所以,我们的优化目标暂时就先定下来了:先集中精力适配市面上的这四个主流品牌机型。其他的冷门机型,后面再慢慢完善。(其实实际上我们也找不来那么多冷门的机型进行测试,所以对于没自身确认过奏效的方案,即使网上已经有人给出,出于谨慎还是先不采纳)

国产主流机型应用角标的适配(OPPO、vivo、华为、小米)

在开始之前,先声明一下。第一,不是所有的国产手机都能找到支持角标显示的方案(即使理论上可以,可能人家只对 QQ 微信等一些国民级的应用开放设置应用角标的白名单)。第二,本文中涉及到的方案都是经过实际测试且奏效的了(因为测试手机有限,所以不敢说针对这四个品牌的手机机型百分百支持,但支持大部分的机型应该是没问题的)。而且,有些品牌的手机适配方案很容易找到,有些品牌的适配方案则很难找到,这部分我会放到后面的章节来说。下面直接上适配方案:

   华为:

先在AndroidManifest文件里配置好下面的权限:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值