关于Android类似qq和微信那种在桌面图标右上角更新数字的研究

本文记录了如何在Android桌面图标右上角显示更新数字,特别是针对华为、OPPO和VIVO等厂商的实现。通过研究QQ和微信的源码,发现它们使用了特定的API和Broadcast进行操作。例如,QQ的BadgeUtilImpl类提供了针对不同厂商的徽标设置方法,而微信则在com.tencent.mm.booter.notification包下的d类中找到相关代码。对于华为,使用ContentResolver调用特定URI改变徽标;OPPO则未能实现;VIVO可以通过特定Intent设置。
摘要由CSDN通过智能技术生成
记录下这个需求的研究  写的超级随意  大家凑合看 不懂再问 一起探讨

因为我们的产品也需要有即时通讯了  消息更新不可避免  
首先 要实现这个功能  当然是要借助系统的Launcher。

而谷歌并没有开放出这个标准的接口或者方法  
于是各大厂商都对Launcher这块做了各自的改动,这也给第三方开发者想要统一处理这个需求加大了难度。
网上demo也有一些  大部分是通过发送广播的方式,来通知系统更新图标上的数字

 比如我之前在github上找到一个demoTestShortCut 就很不错, 针对三星(亲测)、索尼、小米   小米貌似在miui系统里已经内部处理了这种情况  发通知栏消息的时候 会自动加数字
/***
      * 三星手机:应用图标的快捷方式上加数字
      * @param context
      * @param num
      */
    public static void samsungShortCut(Context context, String num)
     {
        int numInt = Integer.valueOf(num);
        if (numInt < 1)
        {
          num = "0";
        }else if (numInt > 99){
            num = "99";
        }
          String activityName = getLaunchActivityName(context);
        Intent localIntent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
        localIntent.putExtra("badge_count", Integer.parseInt(num));
        localIntent.putExtra("badge_count_package_name", context.getPackageName());
        localIntent.putExtra("badge_count_class_name", activityName);
        context.sendBroadcast(localIntent);
     }

/***
      * 索尼手机:应用图标的快捷方式上加数字
      * @param context
      * @param num
      */
    public static void sonyShortCut(Context context, String num)
      {
        String activityName = getLaunchActivityName(context);
        if (activityName == null){
          return;
        }
        Intent localIntent = new Intent();
        int numInt = Integer.valueOf(num);
        boolean isShow = true;
        if (numInt < 1){
          num = "";
          isShow = false;
        }else if (numInt > 99){
            num = "99";
        }
         localIntent.put
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值