在接入推送 SDK 后,您还可以进行以下客户端配置:
前提条件
本文中的
MPPushMsgServiceAdapter
方法仅适用于基线 10.1.68.32 及以上版本。若当前使用的基线版本低于 10.1.68.32,可参考 mPaaS 升级指南 升级基线版本。旧版本中的
AliPushRcvService
方法仍可继续使用,如需查看旧版本文档,可 单击此处下载。
清除角标
厂商通道收到的消息,可在应用图标上显示消息数量的角标。目前推送 SDK 仅支持华为通道自动清除角标。
设置用户点击通知时自动清除应用角标:
// 设置是否自动清除 boolean autoClear = true; MPPush.setBadgeAutoClearEnabled(context, autoClear); // 设置应用入口 Activity 类名,不设置无法清除角标 String activityName = "com.mpaas.demo.push.LauncherActivity"; MPPush.setBadgeActivityClassName(context, activityName);
在角标无法自动清除的场景下,例如用户主动点击应用图标进入应用时,可以在
Application
中调用以下方法主动清除角标:MPPush.clearBadges(context);
上报厂商通道 token
如已接入厂商通道,推送 SDK 初始化后会收到厂商通道的 token,推送 SDK 会自动将厂商通道 token 和自建通道 token 绑定上报。
如有需要,可通过重写 MPPushMsgServiceAdapter
的 onChannelTokenReceive
和 onChannelTokenReport
方法监听厂商通道 token 的下发和上报:
public class MyPushMsgService extends MPPushMsgServiceAdapter {
/**
* 收到厂商通道 token 的回调
*
* @param channelToken 厂商通道 token
* @param channel 厂商通道类型
*/
@Override
protected void onChannelTokenReceive(String channelToken, PushOsType channel) {
Log.d("收到厂商通道 token: " + channelToken);
Log.d("厂商: " + channel.getName());
}
/**
* 厂商通道 token 上报结果的回调
*
* @param result 上报结果
*/
@Override
protected void onChannelTokenReport(ResultBean result) {
Log.d("上报厂商 token " + (result.success ? "成功" : ("错误:" + result.code)));
}
/**
* 是否自动上报厂商 token
*
* @return 返回 false,可根据需求上报
*/
@Override
protected boolean shouldReportChannelToken() {
return super.shouldReportChannelToken();
}
}
如需绑定上报,可重写 shouldReportChannelToken
方法并返回 false,并在确保收到两个 token 后调用:
MPPush.report(context, token , channel.value(), channelToken);
自定义 NotificationChannel
如需自定义自建通道的 NotificationChannel
的名称和说明,可在 AndroidManifest.xml
中添加:
<meta-data
android:name="mpaas.notification.channel.default.name"
android:value="名称" />
<meta-data
android:name="mpaas.notification.channel.default.description"
android:value="说明" />
调整推送通道优先级顺序
基线 10.2.3.43 及以上版本,支持在部分特定设备上调整相关厂商通道优先级,如需使用该功能,请在工程的 assets 目录下创建 mpaas_push_config.properties 文件,并按照下文按需开启。
在华为/荣耀设备上优先使用荣耀通道
如需在华为或者荣耀设备上优先使用荣耀推送通道,请在文件 mpaas_push_config.properties 中添加:
// 将在华为/荣耀设备上优先使用荣耀通道
isHonorBeforeHms=true
在具备 FCM 推送能力的设备上优先使用设备厂商通道
如需在具备 FCM 推送能力的设备上优先使用设备厂商的通道,请在文件 mpaas_push_config.properties 中添加:
// 将在具备 FCM 推送能力的设备上优先使用设备厂商的通道
isFcmEnd=true