原理
添加角标的原理就是发送一个Broadcast(广播),在广播的Intent中指定需要被添加角标的应用的packageName(包名),className(类名),count(角标数目)。当然了,不同厂商的手机的角标操作的Intent的action是不一样的。
https://github.com/leolin310148/ShortcutBadger
可能会碰到如下两个问题:
http://blog.csdn.net/xx326664162/article/details/51083400
http://blog.csdn.net/xx326664162/article/details/51087827
使用方法
- Add mavenCentral to your build script.
repositories {
mavenCentral()
}
- Add dependencies for ShortcutBadger, it's available from maven now.
dependencies {
compile "me.leolin:ShortcutBadger:1.1.13@aar"
}
- Add the codes below:
int badgeCount = 1;
ShortcutBadger.applyCount(context, badgeCount); //for 1.1.4+
ShortcutBadger.with(getApplicationContext()).count(badgeCount); //for 1.1.3
- If you want to remove the badge
ShortcutBadger.removeCount(context); //for 1.1.4+
ShortcutBadger.with(getApplicationContext()).remove(); //for 1.1.3
or
ShortcutBadger.applyCount(context, 0); //for 1.1.4+
ShortcutBadger.with(getApplicationContext()).count(0); //for 1.1.3
Android系统 小米,三星,索尼手机发送桌面快键提醒数字图标,在Android系统中,众所周知不支持BadgeNumber,虽然第三方控件BadgeView可以实现应用内的数字提醒。
但对于系统的图标,特别是app的logo图标很难实现数字标志,即使是绘图的方式不断修改,但这种方式天生弊端,实用性很差。但幸运的是,某些ROM厂商提供了私有的API,但也带来了难度,API的不同意意味着代码量的增加和兼容性问题更加突出。
《Android群英传》和《Android群英传:神兵利器》的作者 徐宣生 也在自己的Github上建了一个项目:https://github.com/xuyisheng/ShortcutHelper ,挺有意思,里面还有号称“疯狂模式”的为所有在手机桌面上的应用加上99的角标数的功能,当然了,去除的代码也有,不然处女座岂不是要晕了~
参考:
http://my.oschina.net/ososchina/blog/352286?p=1#comments
http://www.voidcn.com/blog/kongbaidepao/article/p-62251.html
http://www.eoeandroid.com/thread-557210-1-1.html