消息关闭
    暂无新消息!
        我最近想实现在图标上展示新消息的数目提醒,类似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,实在是想不出办法了,所以想问问各位高手,在此先谢过了!
         既然路过就留下点什么呗~~~~~~

18个回答

︿ 3
华为的确开发了桌面角标的功能,不过我按照对方发过来的文档接入后,并不能显示角标,有遇到的没,我的代码如下:
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:角标数字
︿ 2
http://developer.huawei.com/wiki/index.php?title=%E5%8D%8E%E4%B8%BA%E6%A1%8C%E9%9D%A2%E8%A7%92%E6%A0%87%E5%BC%80%E5%8F%91%E6%8C%87%E5%AF%BC%E4%B9%A6
︿ 1
楼主,我也找到了github上的那个程序,但是还是很多机型不支持,你做联想的了吗。华为的有别的办法解决吗?
︿ 0
我也和你一样要实现这个功能 也是找到了 github上的那个项目。现在到处找华为手机的解决办法,你在第九楼说的意思是一般应用华为不开放这个么 现在解决了没有
︿ 0
HI,Melody_ssdut!能麻烦你将研究出来的角标源码分享一下吗,最近在搞这一块,遇到各种问题,而且github上的源码我再AS上各种跑不起来  删减了配置可以跑了  但功能也都无效了,麻烦分享到CSDN网盘,给个链接!谢谢!
︿ 0
接着上回:
文档中说申请华为证书之前要签署《API 授权证书使用协议》,询问客服说“角标属于受限开放能力,仅面向即时通信领域前五的app开放”。瞬时我就泪崩了~~~~~
︿ 0
我看了很多篇文章,对其中的每个都测试了,就几个是可行的,我只有小米手机,测试起来第一次是可以准确提醒,我在界面里面添加了一个button,点击button后为已读消息,没点击则还是未读状态,但是我未读,返回桌面的时候,那个未读图标消息数已经没了,不知道用什么方法解决