好久没写微博了 忘记这事何物了 今天不想加班 偷偷写一下 最近解除了很多以前没接触过的新东西 都懒得写 为了以后做事情方便就蛮记录一下吧 如果你觉得有用可以试着参考一下
首先奉上效果图看下吧

这就是结果 当然在做之前我们首先要了解下有哪些手机,因为系统原因不支持角标 不然到时候忙了半天还是没有 要开始骂娘了 这个锅在下不背看下这些手机吧以上这些手机要注意 测试的时候尽量多拿几部 像华为这种比较常见的而且支持角标的妥妥的拿过来测试 是绝对问题不大的
开始说正题了哈 别走开精彩马上开始 我这边比较推荐使用别人集成好的框架 毕竟有前辈帮我们摸过河 我们走就比较放心了 不是吗
首先现在对应的app/build.gradle 下的dependencies加入依赖 implementation ‘me.leolin:ShortcutBadger:1.1.22@aar’ 加载完就是了
然后呢我们可能会纠结我需要把事件放在哪个页面好呢 一般是放在启动页或者主页 我是放在主页
需要设置一个图标统计的量 我们定义个整型来记录角标数量int=badgeCount(badgeCount为当前角标的数量 默认为0)

接下来我们就需要设置一次触发机智了 如果你的应用是社交软件 那么太好了 在你收到推送或者收到新消息的时候发送一个触发事件 我这边直接用EventBus
我收到消息是在这个方法里面
public AlarmMessageDto addAlarm(AlarmMessageDto amd)
{
// 把提示通知放到列表的首位置
// return this.addAlarm(getFirstAvailableIndex(amd.isAlwaysTop()), amd, true);
EventBusUtils.post(new EventBusMessageEvent(EventBusConfig.EVENT_UP_BADGE_COUNT));
return this.addAlarm(amd, true);
}
那么我每次收到一条消息就我就让EventBusUtils 发送一条post通知
而我就在启动页或者主页这边等待这个事件
@Subscribe(threadMode = ThreadMode.MAIN)
public void upDateEvent(EventBusMessageEvent event) {
//角标设置
if (event.type.equals(EventBusConfig.EVENT_UP_BADGE_COUNT)) {
badgeCount = badgeCount + 1;
if (badgeCount > 99) {
badgeCount = 99;
}
//角标设置
ShortcutBadger.applyCount(this, badgeCount);
//屏幕唤醒
WakeUpAndUnlockUtil.wakeUpAndUnlock(this);
ShortcutBadgerUtil.setVivoBadger(this, badgeCount);
}
}
如果我收到event.type和上面收到的EventBusMessageEvent(EventBusConfig.EVENT_UP_BADGE_COUNT事一致的我的交表就要+1了 那我直接获取原有的badgeCount = badgeCount + 1;即可 数量设置上去 请记得设置到角标上哦 ShortcutBadger.applyCount(this, badgeCount);那么主页就搞定了 轻轻松松的
但是我们的依赖也是有不足的 有些机型用依赖收不到角标(可能是依赖还不够成熟吧)这时候我们就需要手动添加一些方法
我这白你暂时只做了一个兼容vivo的 (华为三星小米依赖都可以直接显示 就不用了在做兼容了)
/**

  • Created by Android Studio.
  • User: Mr.Lin
  • Date: 2019/9/9 0009
  • Time: 16:54
    • 角标兼容
      /
      public class ShortcutBadgerUtil {
      //兼容Vivo角标
      public static void setVivoBadger(Context context, int msgCount) {
      Intent intent = new Intent(“launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM”);
      intent.putExtra(“packageName”, context.getPackageName());
      String launchClassName = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().getClassName();
      intent.putExtra(“className”, launchClassName);
      intent.putExtra(“notificationNum”, msgCount);
      context.sendBroadcast(intent);
      }
      }
      不卖关子 直接上代码吧 如果有需要兼容其他的进行可以自行研究一下 查下资料吧 网上都可以找到很多呐
      如果你觉得这样就完美 那也就算吧(肯定不完美)!!!
      有些APP收到消息会唤醒屏幕 要不我们也试下吧 感觉不亮一下用户就不知道的样子 哈哈。。。
      因为我们是收到消息才需要唤醒屏幕 所以呢直接跟设置角标在一起就好了 我写成一个工具类了 大家可以直接用
      /
      *
  • Created by Android Studio.
  • User: Mr.Lin
  • Date: 2019/9/9 0009
  • Time: 16:55
  • 屏幕唤醒并解锁
    /
    public class WakeUpAndUnlockUtil {
    /
    *

    • 唤醒手机屏幕
      */
      public static void wakeUpAndUnlock(Context context){
      //屏锁管理器
      KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
      KeyguardManager.KeyguardLock kl = km.newKeyguardLock(“unLock”);
      //解锁
      kl.disableKeyguard();
      //获取电源管理器对象
      PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE);
      //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
      @SuppressLint(“InvalidWakeLockTag”)
      PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP |
      PowerManager.SCREEN_DIM_WAKE_LOCK,“bright”);
      //点亮屏幕
      wl.acquire(5000);
      //释放
      wl.release();
      }
      }
      直接放到对应对的位置就可以了 大家看着安排吧 今天就写到这边吧 其实很多东西 网上搜一搜就有了 就是太分散 所以大家有机会可以整理一下 哪天我要用就去你们那偷就好了
      如果有什么更完善的大家亏一推荐一下 让我也学习一下 谢谢了 如果有不足就帮忙指出吧

android应用角标相关推荐

  1. 2022-01-26 Android应用角标适配方法,源码在三星和华为上测试通过。

    一.应用的角标如下面的红点,提示用户有新的信息更新.角标,英语是badge,也就是"徽章,像章,奖章: 象征,标记"的意思.一般来说,应用的角标是用来标记有多少条提醒(Notifi ...

  2. 【笔记】Android桌面角标Badge官方文档和兼容性解决

    好久没写博客了,这段时间一直在做项目忙得要死啊.然后新需求来了,领导要求做一个像iOS那样能提醒用户未读消息数量的角标.查了下资料出现频率最多的就是ShortcutBadger和ShortcutHel ...

  3. android 小米角标,关于 小米手机 角标的问题

    平常可能都会看到 比如 三星,小米, 系统有类似 ios上app消息通知效果的 右上角 消息角标 在网络上 也有相关方面的资料,但是也有一点是有问题的 就比如在 miui 6 上 这个查了相关资料后, ...

  4. Android桌面角标调研

    一.背景    安卓应用的角标是由Launcher支持的,而原生的Android系统Launcher并没有提供角标支持,所以各大手机厂商只能自己定制Launcher来实现,然后提供接口给外部使用. 二 ...

  5. Android应用角标适配方法

    Android 8.0之前原生是不支持应用角标的,是各个手机厂商自己在系统中实现的应用角标,并且部分厂商提供了设置的方式,所以需要对各个厂商的系统进行适配. GitHub地址:https://gith ...

  6. 史上最全 Android 应用角标适配方法

    Android 8.0之前原生是不支持应用角标的,是各个手机厂商自己在系统中实现的应用角标,并且部分厂商提供了设置的方式,所以需要对各个厂商的系统进行适配. GitHub地址:https://gith ...

  7. react native Android上角标实现

    现在的手机应用会把应用的消息数量想苹果手机一样显示在右上角,而其实这种消息提示的方法在原生Android上是不支持的,原生的launcher在图标上没有显示徽标的view.但是各个手机厂商,比如小米. ...

  8. android 小米角标,Android 小米角标无法修改问题研究

    如果你在APP里面是无法修改角标的,你要在桌面才能修改角标 解决办法是针对小米系统增加延时的操作显示 //延迟操作 new Handler().postDelayed(new ShortCutRunn ...

  9. Android探索之旅 | 为应用添加角标(Badge)

    -- 作者 谢恩铭 转载请注明出处 内容简介 需求简介 Android角标起源 不错的Github项目 清除角标 小问题纠错 总结 1.需求简介 角标是什么意思呢? 看下图即可明了: 可以看到图中的乐 ...

最新文章

  1. ubuntu16禁用utc时间
  2. python爬虫今日头条街拍美图开发背景_分析Ajax请求并抓取今日头条街拍美图:爬取详情页的url与实际页面上显示不符...
  3. C++堆 和 栈 空间的区别
  4. 从程序员角度看ELF
  5. python如何复制oracle数据_Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法...
  6. matlab实现双边滤波_【他山之石】pytorch 实现双边滤波
  7. 泛华贷款输出可靠解决方案,提供高质量金融服务
  8. Mybatis foreach 批量插入
  9. handler 与message的一些理解
  10. linux执行sh文件 查进程,linux – 用于检查进程是否已在运行的Shell脚本,如果是,则退出...
  11. Eclipse或MyEclipse—在Eclipse或MyEclipse中如何将jar包和相应的源代码关联起来
  12. 编写GOM引擎登录器,直接启动GOM客户端DAT文件不掉线
  13. nginx集群的搭建
  14. mysql update 子表,mysql update 子查询锁表问题
  15. 51单片机制作简易计算器(动态数码管、矩阵按键)
  16. 快速更换证件照背景颜色
  17. BI分析工具深度测评:FineBI vs Tableau
  18. SQLServer 数据库无法重命名
  19. 基于SSH+Html的外汇资产业务交易管理系统设计与实现
  20. Gym - 101350E - Competitive Seagulls (博弈)

热门文章

  1. Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第十一章 - 跟踪
  2. 拼多多怎么用有效评价做爆款,提高销量排名?
  3. 11月14日——离noip还有5天[Darker Than Black]
  4. Web 实时推送技术的总结
  5. System.currentTimeMillis()计算方式与时间的单位转换
  6. 音乐网站毕业设计html,静态音乐网站设计(毕业论文).doc
  7. mysql临时表 表变量_TSQL--临时表和表变量
  8. Foursquare解密创新商机
  9. 牛出租车司机....zz
  10. 关于cgi的初步认识推荐两篇博文