数字角标接口(4.x)

更新时间:
复制 MD 格式

本文介绍 Android SDK 4.x 设置和清除当前应用桌面角标的方法。

说明

适用于移动推送 Android SDK 4.x,本文接口和示例以已发布的 4.0.0 版本为基线。使用 3.x 的应用请参见对应的 3.x API 文档。

适用范围

以 4.0.0 发布版本为基线,本接口适配华为、荣耀、vivo 设备。角标显示受设备系统、默认桌面、应用通知与角标设置等条件影响,请在目标设备上验证。

使用前完成 SDK 初始化,通过 com.alibaba.sdk.android.push.noonesdk.PushServiceFactory 获取 CloudPushService。华为设备需满足桌面的角标能力要求;荣耀设备从 Magic UI 6.0 开始支持数字角标。厂商系统要求的权限和设置请结合数字角标使用说明配置。

设置和清除角标

设置当前应用在桌面显示的角标数量。num 是设置后的目标值,不是在现有数量上累加;传 0 清除角标。

所属类:com.alibaba.sdk.android.push.CloudPushService。

接口定义

void setBadgeNum(Context context, int num);

参数说明

参数

类型

是否必填

说明

context

Context

是

当前应用的上下文,建议使用 applicationContext。请传非空对象;传 null 时不执行角标设置。

num

int

是

目标角标数量,不作累加。正数设置角标,0 清除角标;负数按 0 处理。

返回值与回调:void,无返回值和结果回调。请在对应机型的桌面上检查角标显示效果。

设置角标示例

以下代码在 SDK 初始化后执行,context 为当前应用有效的 Android Context。每次调用都会设置目标值;示例将角标设为 1。

CloudPushService pushService = PushServiceFactory.getCloudPushService();
// 将当前应用角标设置为 1。
pushService.setBadgeNum(context.getApplicationContext(), 1);
val pushService = PushServiceFactory.getCloudPushService()
pushService.setBadgeNum(context.applicationContext, 1)

清除角标示例

业务确认已读后,调用以下代码清除角标。

PushServiceFactory.getCloudPushService()
        .setBadgeNum(context.getApplicationContext(), 0);
PushServiceFactory.getCloudPushService()
    .setBadgeNum(context.applicationContext, 0)

排查

确认应用使用支持的系统桌面,允许显示角标,并检查启动 Activity 和厂商要求的权限配置。同时使用本地接口和服务端推送中的角标参数时,请统一维护角标计数。

相关文档

接入流程请参见Android SDK接入(4.x)。

厂商权限、桌面设置与服务端角标参数请参见安卓数字角标使用说明。

使用 3.x 的应用请参见数字角标接口(3.x)。