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

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

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

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

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

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

我尝试了ShortcutBadger(1.1.13):3d

5afbfd62f4887d8991609209d636be63.png

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

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

99395ef1d61fdd0cfbe2589a27bc1240.png

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

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

c057199b1c8783a66439b8c1735f0cb4.png

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

ac6dea84c00398aca694241448112693.png

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

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

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

7b5d335fee0f6de653a660d5f6623db8.png

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv模糊图像变清晰_opencv-python 4.2图像模糊

图像模糊可以去除噪音。import cv2 import numpy as npimage cv2.imread("dogcat1.jpg") cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE) cv2.imshow("input image", image)#均值模糊 dst cv2.blur(image, (5, 5)) cv2.imshow("…

datatable怎么根据两列分组_公司要IT转型,我该怎么办?用Python进行数据处理

“ 以后数据处理,都用pandas”01 面临问题作为运维人员,每周要统计很多数据,特别是周四写周报的时候,基本要花半天时间。既然已经学了Python,那就试试优化它。以统计不同厂家、不同设备类型告警量为例。需要将多份类似…

C语言非常大的数组,关于最大子数组问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼纯新手,最近想学一下算法,上网看了个教程,看到了一个很经典的返回最大子数组之和的问题,然后我想问一下我用分治法把最大和求出来了,但是要怎么返回子数组本身呢&#xff…

pandas尾部添加一条_Numpy与Pandas

Numpy#导入numpy包 import numpy as np ##from numpy import * #定义数组 #一维数组 anp.array([1,2,3,4]) #二维数组 bnp.array([(1,2,3),(4,5,6)]) #定义数组类型 cnp.array([(1,2),(3,4)],dtypecomplex) #array([[ 1.0.j, 2.0.j],[ 3.0.j, 4.0.j]])#数组的维数 a.shape #(…

easyexcel 在 设置标题_阿里开源(EasyExcel)

阿里开源(EasyExcel)---导出EXCEL - 请叫我猿叔叔的博客 - CSDN博客https://blog.csdn.net/qq_35206261/article/details/88579151一. 简介导出是后台管理系统的常用功能,当数据量特别大的时候会内存溢出和卡顿页面,曾经自己封装过一个导出,P…

android webview 劫持,安卓包风险安全监测提示存在Activity劫持、WebView远程代码执行,请问怎么解决?...

挺着急的,请问这个怎么解决1、Activity劫持用例名称:Activity劫持风险系数:高风险编号:NESUN-2016-82091, CWE-94,风险描述:攻击者劫持目标Activity并制造跟目标Activity界面相似度很高的界面迷惑用户,可能…

python爬虫获取url_Python爬虫如何获取页面内所有URL链接?本文详解

如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL。什么是Beautiful Soup? Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索…

iview table增加一行减少一行_PQ入门函数:Table.ReplaceValue

一、基础介绍Table.ReplaceValue函数的官方说明如下:Table.ReplaceValue(table as table, oldValue as any, newValue as any, replacer as function, columnsToSearch as list)该函数实现的功能是将Table中的值替换成新值,语法翻译成汉语大致如下&#…

android so文件崩溃,android 7.0 因为.so文件而崩溃事件解决

菜鸟进场,方圆十里,寸草不生现在基本都在用第三方的分享,但是不知道为什么,脑残的准备自己集成微博的第三方分享,本来一路躺坑都过来了,不过遇到一个奇葩的问题,软件在android N上会崩溃&#x…

gprs模块ftp 远程升级_基于GPRS无线通信技术的冷链监测系统

GPRS(general packet radio service)是通用分组无线业务的简称,该技术建立在GSM网络的基础上,被称为2.5 代移动通信技术,它将无线通信与Internet 紧密结合。基于GPRS的远程数据采集系统是通过中国移动的GPRS无线通信网…

小米登录协议分析_联想前副总裁常程跳槽小米数月后,波澜再起

► 文 观察者网 吕栋今年初,联想集团前副总裁常程离职2天即加盟小米,这一举动是否违反竞业协议,双方当时曾各执一词。最近,由于联想方面在北京提起劳动仲裁,此事也再度引发舆论关注。9月21日,针对“联想与…

html播放rtmp直播流,video.js实现浏览器播放rtmp协议直播流的问题

<!DOCTYPE html><html><head><meta charset"UTF-8"><title>使用video.js实现rtmp流的直播播放</title><!--引入播放器样式--><link href"http://vjs.zencdn.net/5.19/video-js.min.css" rel"stylesheet…

plsql打开sql窗口快捷键_巧用Navicat for MySQL的快捷键

php中文网最新课程每日17点准时技术干货分享巧妙地使用 Navicat for MySQL 快捷键&#xff0c;可以大大提高工作效率&#xff0c;本篇经验将分类介绍Navicat for MySQL快捷键。ctrlq 打开查询窗口ctrl/ 注释sql语句ctrlshift / 解除注释ctrlr 运行查询窗口的sql语句ctrlshiftr …

值从哪里来_Linux used内存到底去哪里了呢?

Linux used内存到底去哪里了呢&#xff1f;阅读文章之前请先思考这么个问题我ps aux看到的RSS内存只有不到30M&#xff0c;但是free看到内存却已经使用了7,8G了&#xff0c;已经开始swap了&#xff0c;请问ps aux的实际物理内存统计是不是漏了哪些内存没算&#xff1f;我有什么…

html文本最小长度,CSS中处理不同长度文本的几种小技巧

CSS中处理不同长度文本的几种小技巧【推荐教程&#xff1a;CSS视频教程 】当我们使用 CSS 构建布局时&#xff0c;考虑长短文本内容很重要&#xff0c;如果能清楚地知道当文本长度变化时需要怎么处理&#xff0c;可以避免很多不必要的问题。在许多情况下&#xff0c;添加或删除…

python将列表中反序输出_python中sorted怎么反序排列

2017-10-30 回答 【python】 sorted函数 我们需要对list、dict进行排序&#xff0c;python提供了两个方法 对给定的list l进行排序&#xff0c; 方法1.用list的成员函数sort进行排序&#xff0c;在本地进行排序&#xff0c;不返回副本 方法2.用built-in函数sorted进行排序&…

matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...

1 SimulinkSimulink-其他校验模块 如下图所示为一些其他的校验模块&#xff0c;分别为声明模块&#xff0c;离散梯度模块&#xff0c;输入分辨率检测模块&#xff1b;声明模块&#xff1a;当输入值非零时检测通过&#xff0c;当输入值中包含有0时&#xff0c;检测模块报错。…

鸿蒙电脑操作系统最新消息,5G专家预测:7年后鸿蒙将成全球第一大操作系统

在公布两年之后&#xff0c;华为的鸿蒙系统历尽千难万险&#xff0c;蓄势待发&#xff0c;即将在6月2日的线上发布会上正式发布。对于鸿蒙的前景&#xff0c;通信行业的 5G 专家项立刚在接受采访中&#xff0c;在谈到对鸿蒙的看法时&#xff0c;他表示他相信 7 年后鸿蒙会成为全…

vivado顶层模块怎么建_【第2040期】Node 模块化之争:为什么 CommonJS 和 ES Modules 无法相互协调...

前言又到周五了。今日早读文章由Shopee周雨楠翻译授权分享。周雨楠&#xff0c;Shopee金融事业群前端研发&#xff0c;自主学习前端技术3年&#xff0c;喜爱各类数字媒体技术、创意设计&#xff0c;多次参与翻译工作。福利&#xff1a;有两张门票&#xff0c;有需要的跟情封联系…

centos7 转换为lvm_(建议收藏)CentOS7挂载未分配的磁盘空间以及LVM详细介绍

简述本文主要介绍CentOS7下如何挂载未分配磁盘空间的详细操作步骤。LVMLVM&#xff0c;逻辑卷管理&#xff0c;英文全称Logical Volume Manager&#xff0c;是Linux环境下对磁盘分区进行管理的一种机制。是在硬盘分区和文件系统之间添加的一个逻辑层&#xff0c;为文件系统屏蔽…