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