本文介紹 OPPO 推送的接入流程,主要包括以下三個步驟。
註冊 OPPO 推送
參考 OPPO 推送平台使用指南 在 OPPO 開放平台 註冊帳號並申請接入推送服務。
接入 OPPO 推送
安裝 推送 - OPPO 組件,方式與添加推送 SDK 相同,參見 添加 SDK。 推送 - OPPO 組件僅包含適配代碼,不包含 OPPO Push SDK 。
前往 OPPO SDK 文檔 下載 SDK 並整合到主工程中。 當前適配的版本為
3.4.0
,如需使用更高版本,可根據需求修改,通常來說廠商 SDK 都會向下相容,如不相容可加入DingTalk群 41708565 反饋適配新版的需求。配置
AndroidManifest.xml
(組件化方式在 Portal 工程中添加),並替換其中的com.oppo.push.app_key
、com.oppo.push.app_secret
的值。<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE" /> <uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE"/> <application> <service android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService" android:exported="true" android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE" android:process=":push"> <intent-filter> <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE"/> </intent-filter> </service> <service android:name="com.heytap.msp.push.service.DataMessageCallbackService" android:exported="true" android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE" android:process=":push"> <intent-filter> <action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE"/> <action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE"/> </intent-filter> </service> <meta-data android:name="com.oppo.push.app_key" android:value="OPPO開放平台擷取" /> <meta-data android:name="com.oppo.push.app_secret" android:value="OPPO開放平台擷取" /> </application>
如需使用混淆,則要添加相關混淆配置:
所有接入方式均需要添加 OPPO 推送混淆規則。
如採用的是 AAR 接入方式,還需要 添加 mPaaS 混淆規則。
如果使用的是 OPPO 推送版本
3.4.0
,還需添加如下依賴:implementation 'commons-codec:commons-codec:1.15'
測試 OPPO 推送
接入 OPPO 推送後,您可以在 OPPO 手機上啟動您的應用並確保調用了初始化方法(參見 訊息推送初始化),推送 SDK 會自動擷取 OPPO 推送的廠商 token 並上報。
可以在殺掉應用進程的情況下推送測試訊息:
如果仍然能收到訊息,說明應用成功接入 OPPO 推送。
如果不能收到訊息,請按照下文進行問題排查。
排查問題
檢查
AndroidManifest.xml
配置是否添加,以及其中com.oppo.push.app_key
、com.oppo.push.app_secret
的值是否和 OPPO 開放平台一致。檢查 mPaaS 控制台是否開啟了 OPPO 通道(參見 配置 OPPO 推送通道),以及相關配置是否和 OPPO 開放平台一致。
查看 logcat 日誌進行排查:
選擇 push 進程,過濾
mPush.PushProxyFactory
,檢查是否存在以下日誌:D/mPush.PushProxyFactory: found proxy com.mpaas.push.external.oppo.Creator
若無,說明添加 推送 - OPPO 組件可能存在問題,請確認是否正確添加。
選擇 push 進程,過濾
mOPPO
,檢查是否擷取到了 OPPO 推送的廠商 token,如出現以下日誌(“OPPO onRegister error”或“responseCode”不為 0):說明 OPPO 推送註冊失敗,錯誤碼參見 OPPO 推送錯誤碼,下拉至錯誤碼定義說明章節。選擇主進程,過濾
report channel token
, 檢查上報 OPPO 廠商 token 是否成功,如出現以下日誌:report channel token error: xxxx
說明上報廠商 token 失敗,請檢查 mPaaS 設定檔 的
base64Code
是否有值,以及擷取設定檔時上傳的 apk 簽名和當前應用是否一致。選擇 push 進程,過濾
mcssdk
,查看 OPPO 推送內部日誌。
其他問題
OPPO 推送支援哪些機型和系統版本
目前支援 ColorOS 3.1 及以上系統的 OPPO 機型,一加 5/5T 及以上機型以及 realme 所有 機型。
ColorOS 是由 OPPO 推出的基於 Android 系統深度定製並最佳化的手機作業系統。