我最近想实现在图标上展示新消息的数目提醒,类似ios的badge。一开始使用的是增删桌面快捷方式的方法,我发现该方法除了未能适配主流手机外,还存在2个缺点:
1.有的手机会在增加和删除快捷方式时弹出Toast;
2.我用canvas和paint画出了数字在右上角显示的图标,因为canvas的大小和普通的图标一样大,所以只看应用的图片的话,就显得小了。
以上这两个缺点我都不想要,克服的话,经百度大家都说要修改Launcher,但是我又没有这个本事就放弃了。
后来在stackoverflow上看到大家对这个问题的讨论,进而在github上发现了ShortCutBadger这个项目https://github.com/leolin310148/ShortcutBadger/,经过测试很给力!!它直接把应用列表中的icon改了,而且大小和谐,我在三星手机和华硕平板上都测试通过了。但是问题是,这里并未给出华为手机的相关处理方法,我觉得华为用户不可小觑,自己用的就是华为机,所以我就找到了这篇http://stackoverflow.com/questions/20216806/how-to-add-a-notification-badge-count-to-application-icon-on-sony-xperia-devices,作者讲述了他在sony手机实现badge的过程。但是我一没翻墙,二没root,实在是想不出办法了,所以想问问各位高手,在此先谢过了!
既然路过就留下点什么呗~~~~~~
1.有的手机会在增加和删除快捷方式时弹出Toast;
2.我用canvas和paint画出了数字在右上角显示的图标,因为canvas的大小和普通的图标一样大,所以只看应用的图片的话,就显得小了。
以上这两个缺点我都不想要,克服的话,经百度大家都说要修改Launcher,但是我又没有这个本事就放弃了。
后来在stackoverflow上看到大家对这个问题的讨论,进而在github上发现了ShortCutBadger这个项目https://github.com/leolin310148/ShortcutBadger/,经过测试很给力!!它直接把应用列表中的icon改了,而且大小和谐,我在三星手机和华硕平板上都测试通过了。但是问题是,这里并未给出华为手机的相关处理方法,我觉得华为用户不可小觑,自己用的就是华为机,所以我就找到了这篇http://stackoverflow.com/questions/20216806/how-to-add-a-notification-badge-count-to-application-icon-on-sony-xperia-devices,作者讲述了他在sony手机实现badge的过程。但是我一没翻墙,二没root,实在是想不出办法了,所以想问问各位高手,在此先谢过了!
既然路过就留下点什么呗~~~~~~
文档中说申请华为证书之前要签署《API 授权证书使用协议》,询问客服说“角标属于受限开放能力,仅面向即时通信领域前五的app开放”。瞬时我就泪崩了~~~~~
现在还是没有解决,暂时用通知栏提醒了
看到华为开发者联盟有提供这样的接口调用 但是需要申请开发者账号 上周申请的时候官网在维护 明天上班再去看看行不行说的是实名认证?这个批准是很快的,我进行到签署《API 授权证书使用协议》这一步的时候,客服说“角标属于受限开放能力,仅面向即时通信领域前五的app开放”
现在还是没有解决,暂时用通知栏提醒了
看到华为开发者联盟有提供这样的接口调用 但是需要申请开发者账号 上周申请的时候官网在维护 明天上班再去看看行不行说的是实名认证?这个批准是很快的,我进行到签署《API 授权证书使用协议》这一步的时候,客服说“角标属于受限开放能力,仅面向即时通信领域前五的app开放”
好吧 这个实在是太坑了
1.声明权限,如下:
<uses-permission android:name=" com.huawei.android.launcher.permission. CHANGE_BADGE"/>2.在需要进行角标显示地方,采用如下方法传递数据给华为桌面应用Bundle extra =new Bundle();
extra.putString("package", "xxxxxx");
extra.putString("class", "yyyyyyy");
extra.putInt("badgenumber", i);
context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);关键参数说明【红色部分为填充参数】
package:应用包名
class:桌面图标对应的应用入口Activity类
badgenumber:角标数字
launcherclass 是多少呀?
launcherclass 是多少呀?
就是你应用中最开始启动的那个Activity,