安卓数字角标使用说明

更新时间:
复制 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接口

PushV2和MassPushV2通过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

true或false

设置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接口

Push和MassPush使用下列扁平参数。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
}