本文介绍 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)。