文档

高级功能

更新时间:

在接入推送 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 绑定上报。

如有需要,可通过重写 MPPushMsgServiceAdapteronChannelTokenReceiveonChannelTokenReport 方法监听厂商通道 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