Android 应用桌面角标显示

前言

  ### 什么是角标?

​ 首先如图1所示,角标就是当有消息来的时候,桌面上应用的图标会用数字显示新消息的条数。

​ 应用角标先出现在ios系统上,apple用于消息通知。实际上,Android原生系统并不支持桌面应用角标的显示,各个Android厂商在定制系统的时候,模仿ios系统,实现了这个功能,角标实现主要是厂商定制Launcher(启动器)来实现,为应用预留了接口。具体地,在应用开发中实现方法主要分为两种,通过getContentResolver或是sendBroadcast方式传递消息数目来实现。不同的厂商需要的权限和传递参数不同,所以需要根据不同的厂商单独实现,此外,并不是每个厂商都将角标功能对外开放了,下面主要介绍常见厂商角标功能的实现方法。

华为

跟华为开发者联盟客服联系确认,华为已经将角标的权限对外开放,不用再去申请证书什么的麻烦操作。亲测华为角标支持EMUI 3.1及以上。具体实现如下:

a) 声明权限,如下:

<uses-permission android:name=" com.huawei.android.launcher.permission. CHANGE_BADGE"/>

b) 在需要进行角标显示地方,采用如下方法传递数据给华为桌面应用


Bundle extra =new Bundle();
extra.putString("package", "xxxxxx");
extra.putString("class", "yyyyyyy");
extra.putInt("badgenumber", i);
context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);

package:应用包名

class:桌面图标对应的应用入口Activity类

badgenumber:角标数字

附加华为开发者联盟传送门

oppo

网上开源的ShortcutBadger里面实现了oppo的角标功能,亲测发现只有部分机型可用,在oppo的2.1系统上可以使用,3.0以后就不行了。实际上,oppo对角标的管控比较严,跟oppo客服联系过,若要使用角标功能,必须提交申请,审核通过了才能开放,官方给的具体审核标准如下:

申请角标接入规则(应用必须适配OPPO手机,保证角标功能测试通过)

​ a) 系统应用

​ b) 国内外各区域用户量排名Top5的三方即时通讯类应用,且只允许显示即时通信消息类通知(如QQ、微信、facebook、line)

​ c) OPPO公司内部费商业化及运营性质的办公类型即时通信应用(如Teamtalk)

​ 4) 国内外邮件类应用(各区域各属于用户量第一梯队的应用)

oppo开放平台 也可以发邮件至devkefu@oppo.com 咨询

小米

小米官方文档

三星

三星手机首先是申请权限,然后通过广播添加角标。

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

 Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");intent.putExtra("badge_count", count);intent.putExtra("badge_count_package_name", context.getPackageName());intent.putExtra("badge_count_class_name", launcherClassName);context.sendBroadcast(intent);

vivo

vivo、三星、小米手机、htc都比较友好,都通过广播设置角标,亲测都有效

 Intent intent = new Intent("launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM");intent.putExtra("packageName", context.getPackageName());intent.putExtra("className", launcherclassname);intent.putExtra("notificationNum", count);context.sendBroadcast(intent);

htc

申请权限

<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/><uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>

 ComponentName cn = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent();Intent intent1 = new Intent("com.htc.launcher.action.SET_NOTIFICATION");intent1.putExtra("com.htc.launcher.extra.COMPONENT", cn.flattenToShortString());intent1.putExtra("com.htc.launcher.extra.COUNT", badgeCount);Intent intent = new Intent("com.htc.launcher.action.UPDATE_SHORTCUT");intent.putExtra("packagename", cn.getPackageName());intent.putExtra("count", badgeCount);ct.sendBroadcast(intent1);ct.sendBroadcast(intent);

以上是所有亲测有效可以设置桌面角标的厂商,其余的SONY、LG等等大家可以参考ShortcutBadger 或是在官网开发者论文里面查找,另外魅族厂商是不支持角标显示功能的。

Android 应用桌面角标显示相关推荐

  1. [贝聊科技]有关Android应用桌面角标(BadgeNumber)实现的探讨

    作者:小强 贝聊移动开发部 Android工程师 前言:本文主要讲述了以下三方面: 怎么在Android系统下让自家的应用图标像iOS系统那样支持数字角标的显示? 在网上找不到现成的解决方案的情况下, ...

  2. android 应用图标 角标 显示未读消息

    Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能.Android程序员就很苦逼,要适配很多机型.建议万不得已情况下还是不要进行这项 ...

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

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51082574 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  4. Android桌面角标调研

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

  5. Android 实现应用桌面角标

    1.小米手机 官方文档:文档中心 /*** 小米手机创建通知信息并创建角标** @param context* @param num*/public static void setXiaoMiBadg ...

  6. android系统允许icon角标,安卓手机角标显示方案

    一些应用,尤其是IM应用,在很多场景系统会推送未读消息:这个时候除了通知栏的提醒,还可以在应用图标右上角加入角标的提示. 目前大部分的安卓系统并不支持设置应用角标,仅部分定制的系统支持.为了节省开发成 ...

  7. Android 实现华为,小米的桌面角标(小红点)

    public static void setBadgeNum(Context context, int number) {//context对象,小红点的数量if (isEmui()) {//这个是华 ...

  8. android 小米推送角标,MIUI67桌面角标开源代码简介

    MIUI6&7桌面角标开源代码简介 MIUI6&7上重新设计了桌面app图标的角标显示,基本规则如下: 一.基本介绍 1.默认的情况 当app 向通知栏发送了一条通知 (通知不带进度条 ...

  9. 华为手机桌面角标开发

    支持的平台版本 系统版本:EMUI4.1 及以上 桌面版本:6.3.29 支持设备:华为设备 是否需要判断华为手机是否支持 答:此功能为可选项,非必需操作.当桌面不支持角标功能时,接口会抛出异常,应用 ...

最新文章

  1. ES6 module 简单整理
  2. 简单总结nodejs处理tcp连接的核心流程
  3. Unknown CMake command add_compile_definitions
  4. main方法一定要放在public类当中吗?
  5. Codeforces Round #573 (Div. 2)(ABCD)
  6. 微软游戏开发工具XNA 2.0[转自驱动之家]
  7. CSS每日学习笔记(3)
  8. 那么多人吹Python,但我真怕你不知道是为什么!
  9. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的关系
  10. 全球人工智能人才培养与发展趋势
  11. 简单的限流保护电路图大全(六款简单的限流保护电路设计原理图详解)
  12. | ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lin
  13. Payton猜词游戏
  14. uber司机已经激活了,就是还没有上传头
  15. 第三届“传智杯”全国大学生IT技能大赛(初赛B组)题解合集
  16. 测试开发工作者日记:(楚汉传奇-it职场)2020.6.24-6.27
  17. 协作通信-af df的matlab仿真,协作通信三种协作方式(AF+DF+CC)的matlab仿真程序
  18. 计算机相关的专刊,计算机 | 1区SCI期刊专刊信息1条
  19. QQ8.9精简优化安装版
  20. 笔记本电脑连不上网怎么回事

热门文章

  1. 对antd中的表格筛选进行改造
  2. NVME Reset
  3. Android Hierarchy Viewer
  4. 105道 CSS 面试题,助你查漏补缺
  5. CSP-J2022入门组二轮补赛试题(山东)T2:宴会
  6. 太突然!著名音乐人陈道明去世,死因曝光,刺痛全网……
  7. 可以发热的“电”羽绒服!60秒升温15度,自带充电宝,脏了还能机洗
  8. TimesTen内存数据库监控 TT监控得懂这些
  9. pta 计算机通信(并查集)
  10. subfigure matlab,(转)LaTeX技巧:subfigure排版并排放置两图