今天有个需求,在用环信推送的同时,系统应用的角标要和环信未读消息一样。可是环信推送的时候只是推送一条推送,在推送内容里显示消息数目,这样在小米这种手机上就固定显示推送的1条消息,无奈之下只好对系统应用进行手动代码添加。
在网上找了一些资料,发现,首先并不是所有机型都可以接到消息数目,并显示到手机应用角标的。goole原生的android系统是并不支持通过接受未读消息数目显示在手机应用角标上的,但是有一些第三方Android手机厂商(如:小米)在系统源码的定制、通过修改了Launcher源代码,增加/注册了新的广播接收器用来接收应用发送来的未读消息数广播,来进行显示数目。
由于本人是小米手机,发现小米手机的规则是当通知栏有一条消息时应用就显示1,有2条消息显示2,但是1条通知栏内容数目为5的时候,应用还是显示1,这时就需要手动加角标。(说明一下,小米在杀死后台的时候也可以收到推送,不过这需要集成小米官网本身的推送sdk)
我先找到的一个方法是,创建桌面快捷方式,之后在图标上进行修改,用canvas画布把角标画到icon上,显示在桌面上。不过在使用的时候也会发现一些缺点,如图标大小显示问题,创建一个快捷方式.......都不是最开始想要的。最后在网上找到了https://github.com/xuyisheng/ShortcutHelper 这个开源项目,测试可用。目前只支持三星 lg 索尼 htc 小米手机