应用角标是iOS的一个特点,原生Android并不支持。或许是由于当时iOS的通知栏比较鸡肋(固然如今已经改进了不少),而Android的通知栏功能强大?因此才出现了一方依赖于数字角标,一方坚持强大的通知栏,在平常使用中这两种交互方式都各有特点,没什么违和感。可是啊,总有人想搞些大新闻:html

当收到推送而应用没有未读角标时:

安卓---什么烂手机!安卓就是不行!

苹果---我靠,这应用居然连角标都不支持!删掉。android

因此啊,众多手机厂商的定制系统或者Launcher都效仿iOS自定义了该功能。若是嫌适配麻烦,能够看看Github上的两个项目:git

我尝试了ShortcutBadger(1.1.13):3d

使用下来,在华为、三星、小米、索尼、APEX上实测成功。可是发现了两个问题:调试

一、有些设备可能会抛出异常,致使设置失败。实测在Samsung Galaxy Note3(Android5.0)上就是如此,发现异常是在这里抛出的htm

这里显示角标是经过发送广播实现,而canResolveBroadcast方法是检查是否存在该广播对应的接收器,不知为什么有些设备会找不到。blog

因此我down了一份代码,直接改了canResolveBroadcast方法,而后手动把aar包导入到项目中使用了文档

二、小米比较特别,他的角标数量直接由通知栏数量决定。用以上方法处理时,通知栏会同时出现一条空的通知。因此小米的角标我作了单独处理

在收到推送消息建立通知时,经过反射把角标数量设置进通知中,这也是官方文档中的作法。

值得注意的一点是,若是你的通知有好几类,好比:有邮件的、有新动态的等,邮件的通知是一封邮件对应一个通知,而新动态是折叠在一块儿的(你有xx条新动态未读),甚至还有其余不是透传形式的推送通知的。我原觉得在设置角标的时候要手动计算出当前全部通知的数量,但通过验证,咱们只须要关心当前收到的这条消息,若是是折叠的就要用上述方法手动设置数量,其余的并不须要处理,一条通知对应的角标数量默认就是一,同时MIUI会自动计算通知数的总和去更新角标。

三、在荣耀9上调试demo,发现一直无效,提示权限问题,可是权限是的确申请了的。

无心发现申请了 以后就解决了。

最后,若是你是针对某个系统或Launcher单独写时,能够直接搜索各家的适配方法,但无论是哪一种。。千万别忘了在AndroidManifest中有没有添加相应的Badge权限啊~

Android代码设置角标,Android上的Badge,快速实现给应用添加角标相关推荐

  1. android 代码设置像素,【Android实例】用设计原则来重构1像素保活代码

    1 类图 在[FJU项目]1像素进程保活(二)中,涉及到的几个类的类图如下所示(仅供参考): 实线箭头:关联 虚线箭头:依赖 重构前UML类图在上图中,OnePixelManager里面有太多的职责, ...

  2. android 代码设置textview draw,Android 自定义气泡TextView

    效果如下: 可以设置颜色.描边.三角形高度和方向,以向上居中和向下居中为例 气泡.png 实现思路: 使用Canvas绘制气泡形状,因为气泡中间只显示文字,所以我直接继承TextView,重写onDr ...

  3. android代码设置drawor色值,Android 着色器 tint

    本文主要总结了 Android 着色器的使用及其原理,在实现同等效果的情况下,减少资源图的使用以减小 apk 包的体积并降低对内存的占用. 假设我们想实现一种效果,如下: 不怎么友好的做法是让设计师给 ...

  4. android代码设置弹窗颜色,Android编程实现简单设置按钮颜色的方法

    本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...

  5. android 代码设置铃声,在Android中设置铃声

    慕的地6264312 解决方案是在将资源文件资产提供给内容解析器进行插入之前,先获取资源文件资产并将其写入sdcard 1st.File newSoundFile = new File("/ ...

  6. android 代码设置EditText的hint字符

    今天,简单讲讲android里如何在代码里设置  EditText的hint字符. 之前,我一般是直接在xml文件设置EditText 的hint字符,后来需要在代码里修改hint字符,发现自己居 ...

  7. android 铃声设置失败,无法通过Android代码设置铃声

    我正在开发一个应用程序,它将随机设置用户已选择的铃声列表中的铃声.无法通过Android代码设置铃声 虽然我的代码适用于Android N及以上版本,但我遇到了Android M及以下版本的问题.我为 ...

  8. Android 系统性能优化(42)---Android代码内存优化建议-Android资源篇

    Android代码内存优化建议-Android资源篇 这篇文章主要介绍在实际Android应用程序的开发中,容易导致内存泄露的一些情况.开发人员如果在进行代码编写之前就有内存泄露方面的基础知识,那么写 ...

  9. Android中设置显示文本,Android文本显示控件-TextView属性详解

    android:autoLink //设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/map/all) andr ...

最新文章

  1. FPGA 内部双口块RAM 读写实现
  2. 【深度学习入门到精通系列】留一交叉验证法Python实现(看不懂你来打我~!)
  3. 718保时捷spyder_我要买保时捷718 Spyder的原因:新手也可以玩手动
  4. 基于FPGA的波速形成实现
  5. 排序算法系列:选择排序算法
  6. 三月苏州健康小贴士!!!健康生活从我做起
  7. java中的进制转换
  8. HDU 2289 Cup
  9. Exp3 免杀原理与实践 20164309
  10. ptaa乘以b_《C语言程序设计》实验作业--PTA顺序结构练习
  11. java递归算法实现
  12. 剑灵力士卡刀ahk_技术宅教你:召唤代码一键卡刀详细教程帖
  13. 12c oracle 激活_Oracle 12C 安装教程
  14. 信息学奥赛一本通(1397:简单算术表达式求值)
  15. django-路由传参-视图捕获URL的参数-位置传参-关键词传参
  16. e会学安庆师范大学c语言程序设计答案,宜春学院期末考试试卷C语言程序设计(4份,有答案)...
  17. 一切问题的解决都离不开人
  18. 电脑主机箱前置耳机没声音(window7)
  19. tcp checksum 0xffff instead of 0x0000 see rfc 1624
  20. UIView相对坐标转换

热门文章

  1. ASP“.NET研究”.NET中的认证与授权
  2. ActiveRecord.JS 与 Google Gears
  3. django安装_技术大牛详解:Django框架之环境安装
  4. 深入理解equals和hashCode关系和区别
  5. java linux 调用32位so_从linux源码看socket(tcp)的timeout
  6. 计算机论文答辩2分钟演讲稿,毕业答辩发言稿三分钟
  7. python的urllib四大模块_Python常用的内建模块4:urllib
  8. appium和airtest_关于Airtest自动化测试工具
  9. android dp转px的公式_Android特效专辑——自定义不一样的Toast
  10. 设计模式状态模式uml_UML的完整形式是什么?