天天看點

Android OPPO推送服務內建

OPPO推送服務內建

  • ​​前言​​
  • ​​正文​​
  • ​​一、建立AS應用​​
  • ​​二、建立OPPO平台應用​​
  • ​​三、編輯推送消息​​
  • ​​1. SDK內建​​
  • ​​2. AndroidManifest配置​​
  • ​​3. 配置應用資訊​​
  • ​​4. 編輯推送消息​​
  • ​​結語​​

前言

  為了豐富應用推送的場景和國産大廠裝置,在我有這個條件的情況下,相關機型的文章我都會寫一遍,這一篇就寫一下OPPO的推送服務內建,我本身是榮耀的手機,OPPO是借的朋友的舊手機來測試對接的,手機名稱是OPPO Find X,ColorOS版本是V7.1,Android版本是10,下面進入正文。

正文

運作效果圖,如果你還滿意,請繼續往下看。

Android OPPO推送服務內建

  和之前的華為一樣,你要使用OPPO的推送服務首先要成為OPPO開發者,

Android OPPO推送服務內建

這裡的賬号要為企業賬号,個人開發者賬号是不能進行應用建立的,同理不能對接推送服務,是以必須要是企業開發者賬号才行。起碼在OPPO開方平台上,需要這個企業開發者賬号才能做應用的推送。登入賬号

Android OPPO推送服務內建

選擇推送服務。

Android OPPO推送服務內建

申請推送,最好不要在已經上線的項目上改動,是以你可以建立一個應用來做推送的測試。

一、建立AS應用

Android OPPO推送服務內建

這裡的包名先複制一下,點選Finish。建立完成之後先運作到自己手機上,請不要使用模拟器或者虛拟機。

Android OPPO推送服務內建

在手機上運作好了之後,安裝所需要擷取OPPOSign的應用,下載下傳​​APK簽名工具​​下載下傳後是一個rar檔案,解壓之後通過QQ發送到自己的是手機上,然後安裝這個APK,安裝好之後打開,輸入剛才的包名,如下:

Android OPPO推送服務內建

輸入包名,然後點選擷取簽名按鈕,就會出現簽名資料,長按複制一下。

二、建立OPPO平台應用

點選建立應用

Android OPPO推送服務內建
Android OPPO推送服務內建

建立好了

Android OPPO推送服務內建

下面給這個應用開通推送權限,

Android OPPO推送服務內建

點選這個應用

Android OPPO推送服務內建

點選申請開通

Android OPPO推送服務內建

勾選上,然後送出申請。

Android OPPO推送服務內建

等待稽核通過,這個稽核的時間大概是一天。

Android OPPO推送服務內建

現在稽核通過了,點選進入應用。

Android OPPO推送服務內建

三、編輯推送消息

現在保證你的手機上安裝了這個測試App,然後來編輯這個推送消息。

Android OPPO推送服務內建

然後你會發現這個地方需要輸入這個RegistrationId,它是應用在對應裝置的上唯一ID,不同的應用RegistrationID不同,該ID在使用者裝置刷機、解除安裝應用、或裝置長時間無連接配接時失效。沒有它你是無法推送消息的,那麼怎麼來擷取這個RegistrationId呢?

1. SDK內建

之前下載下傳的簽名檔案夾裡面有一個OPPO推送SDK檔案夾

Android OPPO推送服務內建

将這個aar檔案複制到你項目的libs下。

Android OPPO推送服務內建

然後打開app下的build.gradle進行配置,兩處修改,代碼如下:

{
        flatDir {
            dirs 'libs'
        }
    }      
implementation(name: 'com.heytap.msp', ext: 'aar')      
Android OPPO推送服務內建

2. AndroidManifest配置

打開你的AndroidManifest.xml,OPPO推送服務SDK 2.1.0版本支援的最低安卓版本為Android 4.4系統。

<uses-sdk  android:minSdkVersion="19"/>      

然後是權限,如果應用無透傳權限,則不用配置

android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE"/>
    <uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE"/>      

最後是服務,推送服務元件注冊(如果應用無透傳權限,則不用配置)

android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService"

            android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
            <intent-filter>
                <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE"/>
            </intent-filter>
        </service>
        <!--相容Q版本-->
        <service
            android:name="com.heytap.msp.push.service.DataMessageCallbackService"

            android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE">

            <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>      

位置如下圖

Android OPPO推送服務內建

3. 配置應用資訊

Android OPPO推送服務內建

這裡我标注了三個,但是在App中其實隻要用到後面兩個,不需要用到AppId。現在先把這幾個參數配置到項目中,在com.llw.oppopush下建立一個AppParam,裡面的代碼如下:

package com.llw.oppopush;

/**
 * 應用參數
 * @author llw
 */
public class AppParam {

    /**
     * 背景為每個應用配置設定的id,用于唯一辨別一個應用,在程式代碼中用不到
     */
    public static String appId = "30549403";
    /**
     * appKey,用于向push伺服器進行注冊,
     */
    public static String appKey = "23e64cae36364c14b3eb1f931a1bec21";
    /**
     * appSecret,用于進行注冊和消息加解密,
     */
    public static String appSecret = "75cddfa038e94fdd8c6122a75cbf74cb";
}      

記得把值改成自己平台上的。然後建立一個,然後在com.llw.oppopush包下建立一個MyApplication,繼承Application。在onCreate方法中,完成SDK的初始化。

package com.llw.oppopush;

import android.app.Application;
import android.util.Log;

import com.heytap.msp.push.HeytapPushManager;
import com.heytap.msp.push.callback.ICallBackResultService;

public class MyApplication extends Application {

    private static final String TAG = "MyApplication";

    @Override
    public void onCreate() {
        super.onCreate();
        //初始化
        HeytapPushManager.init(this, true);
        HeytapPushManager.register(this, AppParam.appKey, AppParam.appSecret, mPushCallback);//setPushCallback接口也可設定callback
        HeytapPushManager.requestNotificationPermission();
    }

    /**
     * SDK操作回調處理
     */
    private ICallBackResultService mPushCallback = new ICallBackResultService() {
        @Override
        public void onRegister(int code, String s) {
            if (code == 0) {
                Log.d(TAG, "注冊成功,registerId:" + s);
            } else {
                Log.d(TAG, "注冊失敗,code=" + code + ",msg=" + s);
            }
        }

        @Override
        public void onUnRegister(int code) {
            if (code == 0) {

                Log.d(TAG, "登出成功,code=" + code);
            } else {
                Log.d(TAG, "登出失敗,code=" + code);
            }
        }

        @Override
        public void onGetPushStatus(final int code, int status) {
            if (code == 0 && status == 0) {
                Log.d(TAG,"Push狀态正常,code=" + code + ",status=" + status);
            } else {
                Log.d(TAG, "Push狀态錯誤,code=" + code + ",status=" + status);
            }
        }

        @Override
        public void onGetNotificationStatus(final int code, final int status) {
            if (code == 0 && status == 0) {
                Log.d(TAG,  "通知狀态正常,code=" + code + ",status=" + status);
            } else {
                Log.d(TAG,  "通知狀态錯誤,code=" + code + ",status=" + status);
            }
        }

        @Override
        public void onSetPushTime(final int code, final String s) {
            Log.d(TAG, "SetPushTime,code=" + code + ",result:" + s);
        }

    };
}      

下面在AndroidManifest.xml中配置

Android OPPO推送服務內建

下面運作一下:

Android OPPO推送服務內建

點選允許就可以了。然後再看看你的日志欄。

Android OPPO推送服務內建

這裡列印了一個RegistrationId,這正是我們所需要的。

4. 編輯推送消息

這裡是不能出現test或者測試的字樣的

Android OPPO推送服務內建

往下走。輸入剛才拿到的RegistrationId

Android OPPO推送服務內建

其他的内容就可以不填了,點選下一步,然後送出這個稽核。

Android OPPO推送服務內建

一般來說你送出稽核之後馬上就會通過稽核,然後你切換到全部,點選查詢就能檢視到之前送出的消息稽核,如上圖已經通過了稽核,點選右邊的詳情。

Android OPPO推送服務內建

進入稽核詳情頁面,這裡就是你之前編輯的内容,下面有一個預推測試,點選之後你可以輸入之前的RegisterId。

Android OPPO推送服務內建

然後點選這個預推測試按鈕,你的手機上就會收到一條通知,無論你目前的應用有沒有在背景運作,都可以收到這個通知。息屏的情況下同樣可以收到通知,效果如下圖所示:

Android OPPO推送服務內建

結語