安卓数字角标使用说明

更新时间:
复制 MD 格式

如何在不同机型手机上适配数字角标。

前言

厂商支持说明

使用数字角标包含两个步骤:

第一步客户端配置

第二步服务端配置

重要

华为、荣耀和vivo自有通道角标需使用移动推送SDK V3.9.1及以上版本。

厂商支持说明

手机类型

自有通道

厂商通道

是否需要配置

华为

支持

支持

荣耀

支持

支持

小米

系统自动统计

系统自动统计

需用户开启角标权限

vivo

支持

支持(仅PushV2)

OPPO

不支持

支持

魅族

不支持

不支持

说明

小米机型的角标数为应用在通知栏中的通知的数量。无法通过api设置角标数量。

vivo厂商通道角标仅支持PushV2接口,并且需要提前开通VPush角标权限。

OPPO厂商通道仅支持通讯与服务类等允许携带数字角标的消息,具体准入和展示规则请参见OPPO PUSH桌面数字角标文档

第一步客户端配置

<!--华为/荣耀角标需要权限-->
<uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<!--vivo角标需要权限-->
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" />
<!--OPPO角标需要权限-->
<uses-permission android:name="com.oplus.notification.permission.BADGE_DIGITAL" />
说明
  • 对华为/荣耀机型的角标支持,移动推送SDK只负责展示角标,角标的消除需要用户手动调用api完成。移除角标api请参考数字角标接口

  • 小米机型展示数字角标需要在设置中打开角标权限。

  • OPPO角标接入方式适用于ColorOS 16及以上版本,并需要用户授予桌面数字角标权限。

  • 使用vivo厂商通道角标前,还需要在vivo开放平台申请VPush角标权限;仅声明客户端权限不能代替厂商通道权限。

第二步服务端配置

PushV2接口

PushV2MassPushV2通过PushTask.Notification.Android传入Android角标参数。下表说明各参数支持的推送通道和手机机型。

参数

类型

取值

支持通道与说明

PushTask.Notification.Android.BadgeAddNum

int

1~99

设置角标数字固定值。

说明
  • 厂商通道:华为、荣耀、OPPO。华为、荣耀按指定数值累加;OPPO固定增加1,参数值大于1时不会增加对应数值。

  • 阿里云自有通道:不支持。

PushTask.Notification.Android.BadgeSetNum

int

0~99

设置角标累加值,在原角标的基础上进行累加。

说明
  • 厂商通道:华为、荣耀、OPPO。设置为0时清除角标。

  • 阿里云自有通道:支持华为、荣耀和vivo机型,由客户端SDK设置固定角标值。

  • BadgeAddNum同时设置时,本参数优先生效。

PushTask.Notification.Android.BadgeActivity

String

应用入口Activity全类名

角标设置应用入口 Activity 的全类名。

说明
  • 厂商通道:仅华为、荣耀使用。设置通用角标参数时需同时设置本参数。

  • 阿里云自有通道:不使用,客户端SDK会自行获取Launcher Activity。

PushTask.Notification.Android.Options.Vivo.AddBadge

boolean

truefalse

设置vivo通道角标累加值。

说明

PushTask示例

{
  "Target": {
    "Type": "ACCOUNT",
    "Value": "86",
    "Platform": "ANDROID"
  },
  "Notification": {
    "Title": "通知标题",
    "Body": "通知正文",
    "Android": {
      "BadgeSetNum": 11,
      "BadgeActivity": "com.example.MainActivity",
      "VendorChannelActivity": "com.example.PopupActivity",
      "Options": {
        "Vivo": {
          "AddBadge": true
        }
      }
    }
  }
}

Push接口

PushMassPush使用下列扁平参数。Push接口没有vivo厂商角标专属参数,因此无法通过vivo厂商通道增加角标。

参数

类型

取值

支持通道与说明

AndroidBadgeAddNum

int

1~99

设置角标数字固定值。

说明
  • 厂商通道:华为、荣耀、OPPO。华为、荣耀按指定数值累加;OPPO固定增加1,参数值大于1时不会增加对应数值。

  • 阿里云自有通道:不支持。

AndroidBadgeSetNum

int

0~99

设置角标累加值,在原角标的基础上进行累加。

说明
  • 厂商通道:华为、荣耀、OPPO。设置为0时清除角标。

  • 阿里云自有通道:支持华为、荣耀和vivo机型,由客户端SDK设置固定角标值。

  • BadgeAddNum同时设置时,本参数优先生效。

AndroidBadgeClass

String

应用入口Activity全类名

角标设置应用入口 Activity 的全类名。

说明
  • 厂商通道:仅华为、荣耀使用。设置通用角标参数时需同时设置本参数。

  • 阿里云自有通道:不使用,客户端SDK会自行获取Launcher Activity。

说明

下发角标数据结构

{
  "AppKey": "******",
  "PushType": "NOTICE",
  "DeviceType": "ANDROID",
  "Target": "ACCOUNT",
  "TargetValue": "86",
  "StoreOffline": true,
  "Title": "通知标题",
  "Body": "通知正文",
  "AndroidOpenType": "APPLICATION",
  "AndroidPopupActivity": "com.example.PopupActivity",
  "AndroidPopupTitle": "******",
  "AndroidPopupBody": "******",
  "AndroidNotificationChannel": "******",
  "AndroidTargetUserType": 1,
  "AndroidBadgeAddNum": 7,
  "AndroidBadgeClass": "******",
  "AndroidBadgeSetNum": 11
}