天天看点

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推送服务集成

结语