您的位置:首页 > 移动开发 > Android开发

android桌面快捷方式添加数字角标的踩坑之路

2016-06-25 18:23 288 查看
提供2个亲测有效的开源项目地址

1.https://github.com/xuyisheng/ShortcutHelper

2.https://github.com/leolin310148/ShortcutBadger

目前只支持三星 lg 索尼 htc 小米手机

Android桌面角标的适配确实是非常坑爹的需求。原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能。Android程序员就很苦逼,要适配很多机型。建议万不得已情况下还是不要进行这项工作。 

其实这个功能和手机厂家没有直接的关系,而是和手机当前使用的launcher有直接关系。比如三星的手机我安装Asus桌面,这时候我们就不能适配三星launcher而要去适配华硕launcher。
在开发中主要参考了ShortcutBadgerBadge分析&如何逼死处女座
在开发中问题总结 
nova launcher 的免费版本是没有桌面角标的功能,nova launcher prime版本才有(需要收费且国内各大应用市场没有提供下载)。
apex launcher 也是需要收费。
adw launcher 是免费的功能正常,但是ui太难看。
asus launcher 是免费的功能正常,但是发现如果连续发送未读消息,角标显示有延迟。
htc launcher 没有机器没测试
sony launcher 没有机器没有测试
LG launcher 没有机器没有测试
小米/三星/asus/adw亲测可以正常使用
meizu 目前不支持(在Flyme4.5测试微信)
联想 VIBE ui目前不支持(在VIBE UIV3.1测试微信)
锤子 launcher 目前不支持第三方app的角标(但是微信有,应该是给单独适配了微信)
oppo等其他手机没有测试也没有考虑
最后说说华为。Emui3.0上确实第三方应用都没有角标包括微信。Emui4.1开始支持第三方app角标华为桌面角标介绍(很复杂!!!)。按照这个逻辑EMui3.1所有的第三方都不支持,但是就是微信,钉钉却有角标。我给领导的结论是EMui3.1上是不支持的,但领导说为什么她的手机微信钉钉能做到。为了解决这个疑惑发帖,进群,发邮件,在折腾2天后,华为一个技术回邮件说”角标属于受限开放能力,仅面向即时通信领域前五的app开放”,终于解决了这个疑惑。真是鄙视这些为大户开绿灯看不清小众app的厂商。决定暂时不支持华为

ShortcutBadger实际使用中 发现这个项目有些不合理的地方。重新整理了一个library 
一般情况下设置角标和notification是并行的,改成发送notification的同时修改角标。
还有小米中count 并不是所有notification的总和。二是要传入当前notificationId 对应的count。对小米launcher进行了改进

badge 真是个费力不讨好的需求,希望有同样需求的伙伴少走些弯路。当有新的手机launcher需要适配的时候继续进行完善
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android