Android Badge给应用添加角标

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

当收到推送而应用没有未读角标时:
安卓---什么烂手机!安卓就是不行!
苹果---我靠,这应用竟然连角标都不支持!删掉。

所以啊,众多手机厂商的定制系统或者Launcher都效仿iOS自定义了该功能。如果嫌适配麻烦,可以看看Github上的两个项目:

https://github.com/leolin310148/ShortcutBadger

https://github.com/xuyisheng/ShortcutHelper

我尝试了ShortcutBadger(1.1.13):

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

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

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

所以我down了一份代码,直接改了canResolveBroadcast方法,然后手动把aar包导入到项目中使用了

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

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

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

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

阅读原文

时间: 2024-10-25 21:40:13

Android Badge给应用添加角标的相关文章

应用程序添加角标和tabBar添加角标,以及后台运行时显示

1.设置角标的代码:   // 从后台取出来的数据可能是int型的不能直接给badgeValue(string类型的),需要通过description转化  NSString *count = [responseObject[@"count"] description]; if ([count isEqualToString:@"0"]) { self.tabBarItem.badgeValue = nil; //设置tabBar的角标 [UIApplication

【Android开发】APP桌面角标问题

Demo:https://github.com/baitutang1221/BadgeNumberManager 参考:https://juejin.im/post/59f2e59751882578c17ee275 原文地址:https://www.cnblogs.com/neo-java/p/10185068.html

Android 为应用添加数字角标

今天在论坛上看到了一个帖子,终于搞清了我很久以来的一个困惑,android到底能不能实现ios的角标效果,QQ是怎么实现的.看了这个帖子顿时终于解除了我的困惑. 先说一个下大概的思路: 大家都知道android系统默认是不支持角标的.但是有时候你又可以在很多系统上看到角标,这些系统包括 小米手机的miui 三星手机的TouchWiz  索尼手机; 这些手机的系统应用都可以显示数字角标.这是应为这些系统进行了定制,使用的是自己的launcher. 所以在这些系统上的实现思路就是使用这些手机的私有a

Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示

参考: http://dev.xiaomi.com/doc/p=3904/index.html http://my.oschina.net/ososchina/blog/352286?p=1#comments https://github.com/leolin310148/ShortcutBadger http://www.voidcn.com/blog/kongbaidepao/article/p-62251.html http://www.eoeandroid.com/thread-5572

MUI - actionsheet(操作表)、badge(数字角标)

原文地址:http://www.hcoder.net/tutorials/info_83.html 1.操作表 actionsheet一般从底部弹出,显示一系列可供用户选择的操作按钮: actionsheet是从popover控件基础上演变而来,实际上就是一个固定从底部弹出的popover,故DOM结构和popove类似,只是需要在含.mui-popover类的节点上增加.mui-popover-bottom..mui-popover-action类: <div id="sheet1&qu

iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)

一.效果 二.简单用法 超级简单,2行代码集成:xib可0代码集成,只需拖一个view关联LFBadge类即可 支持pod导入pod 'LFKit/LFBadge' //一般view上加角标 _badge1 = [[LFBadge alloc] init]; [_badge1 addToTabBarItem:_view1]; //BarButtonItem上加角标 _badge2 = [[LFBadge alloc] init]; [_badge2 addToBarButtonItem:self

Framework7新版学习笔记之 角标

一:角标 F7提供了一种微型控件--角标,常用语消息条数显示.点餐数量显示等. 二:使用角标 在需要添加角标的标签之间包含: ...<span class="badge color-xx">角标内容</span>... 原文地址:https://www.cnblogs.com/ygj0930/p/8460430.html

iOS 实现角标 新消息提示红点 数字角标

镔哥今天写写实习新消息提示的小圆圈数字角标 直接上代码吧. 1:直接复杂uibarButton类 // //  UIBarButtonItem+Badge.h //  therichest // //  Created by 淘股 on 2015-05-05. //  Copyright (c) 2015 taogu Inc. All rights reserved. // #import <UIKit/UIKit.h> @interface UIBarButtonItem (Badge) @

底边栏Tab切换Fragment,带角标显示效果

类似于手机版qq的底边栏Tab效果有很多种实现方法,比如TabActivity.自定义RadioGroup等.由于高版本下TabActivity已经被废弃,而且Activity比较重量级,所以一般不使用TabActivity.这里分享一种我写的自定义底部Tab的方法,顺带加上底部标签的角标显示效果.效果如下: 关于Demo需要交代几点: 1.这个Demo中并没有对尺寸做适配,在不同机型的手机上运行需要调整代码中的尺寸相关代码. 2.角标效果只是个演示效果,逻辑可能并不合理,具体显示或者改变.隐藏