在接入推送 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