全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android为应用添加数字角标的简单实现

角标,英语是badge,也就是“徽章,像章,奖章; 象征,标记”的意思。

效果图


可以看到图中的环信单聊这个app右上角的红色的圆圈,里面有6这个数字的,就是一种角标。

一般来说,应用的角标是用来标记有多少条提醒(Notification)没读(unread),一旦点击提示进应用阅读了,角标也会消失。

一些必要的说明

角标原本是苹果的iOS中的东西,Android原生并不支持角标,因为Google的意思是让大家用Notification(提示栏)即可,不过无妨,厉害的Android第三方厂商可以通过在自定义的Launcher(启动器)中操作来实现添加角标。

原理

添加角标的原理就是发送一个Broadcast(广播),在广播的Intent中指定需要被添加角标的应用的packageName(包名),className(类名),count(角标数目)。当然了,不同厂商的手机的角标操作的Intent的action是不一样的。

在AndroidManifest.xml中添加读取和写入角标的权限:

<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />

设置角标和清除角标的工具类

public class BadgeUtils {
  private static final String INTENT_ACTION = "android.intent.action.BADGE_COUNT_UPDATE";
  private static final String INTENT_EXTRA_BADGE_COUNT = "badge_count";
  private static final String INTENT_EXTRA_PACKAGENAME = "badge_count_package_name";
  private static final String INTENT_EXTRA_ACTIVITY_NAME = "badge_count_class_name";

  //设置角标
  public static void setBadgeCount(Context context, int badgeCount) {
    Intent intent = new Intent(INTENT_ACTION);
    intent.putExtra(INTENT_EXTRA_BADGE_COUNT, badgeCount);
    intent.putExtra(INTENT_EXTRA_PACKAGENAME, getComponentName(context).getPackageName());
    intent.putExtra(INTENT_EXTRA_ACTIVITY_NAME, getComponentName(context).getClassName());
    context.sendBroadcast(intent);
  }

  //清除角标
  public static void removeBadge(Context context){
    setBadgeCount(context,0);
  }

  //获取ComponentName
  private static ComponentName getComponentName(Context context) {
    return context.getApplicationContext().getPackageManager()
        .getLaunchIntentForPackage(context.getApplicationContext().getPackageName())
        .getComponent();
  }
}

注意:

因为不同手机厂商的action不同,所以可能导致某些手机不能使用,在此推荐一个github的第三方库:https://github.com/leolin310148/ShortcutBadger

github地址:https://github.com/zhouxu88/AppBadge

完整demo下载地址:AppBadge_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # 应用角标  # android角标数字  # 添加应用角标  # Android 实现桌面未读角标  # Android实现购物车及其他功能的角标  # 第三方  # 启动器  # 也会  # 在此  # 下载地址  # 有多少  # 可以通过  # 可以看到  # 自定义  # 英语  # 本是  # 来实现  # 图中  # 大家多多  # 大家用  # 是用来  # 当然了  # lt  # Broadcast  # Intent 


相关文章: 建站三合一如何选?哪家性价比更高?  如何通过多用户协作模板快速搭建高效企业网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  金*站制作公司有哪些,金华教育集团官网?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  已有域名和空间如何快速搭建网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  攀枝花网站建设,攀枝花营业执照网上怎么年审?  孙琪峥织梦建站教程如何优化数据库安全?  建站之星后台管理:高效配置与模板优化提升用户体验  建站之星代理如何获取技术支持?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  想学网站制作怎么学,建立一个网站要花费多少?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何生成腾讯云建站专用兑换码?  如何通过IIS搭建网站并配置访问权限?  如何快速打造个性化非模板自助建站?  如何高效配置IIS服务器搭建网站?  如何在万网开始建站?分步指南解析  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  测试制作网站有哪些,测试性取向的权威测试或者网站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  相册网站制作软件,图片上的网址怎么复制?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  建站之星如何快速解决建站难题?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  如何在建站宝盒中设置产品搜索功能?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  如何在阿里云购买域名并搭建网站?  建站之星价格显示格式升级,你的预算足够吗?  股票网站制作软件,网上股票怎么开户?  如何在腾讯云服务器快速搭建个人网站?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  大同网页,大同瑞慈医院官网?  建站主机功能解析:服务器选择与快速搭建指南  实现虚拟支付需哪些建站技术支撑?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  c# 在高并发场景下,委托和接口调用的性能对比  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  定制建站如何定义?其核心优势是什么?  seo网站制作优化,网站SEO优化步骤有哪些?  音响网站制作视频教程,隆霸音响官方网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  购物网站制作公司有哪些,哪个购物网站比较好?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。