前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android OPPO推送服务集成(详细教学)

Android OPPO推送服务集成(详细教学)

作者头像
晨曦_LLW
发布2021-06-11 18:11:32
2.3K0
发布2021-06-11 18:11:32
举报
文章被收录于专栏:Android、鸿蒙开发

OPPO推送服务集成

前言

  为了丰富应用推送的场景和国产大厂设备,在我有这个条件的情况下,相关机型的文章我都会写一遍,这一篇就写一下OPPO的推送服务集成,我本身是荣耀的手机,OPPO是借的朋友的旧手机来测试对接的,手机名称是OPPO Find X,ColorOS版本是V7.1,Android版本是10,下面进入正文。

正文

运行效果图,如果你还满意,请继续往下看。

在这里插入图片描述
在这里插入图片描述

  和之前的华为一样,你要使用OPPO的推送服务首先要成为OPPO开发者,打开OPPO 推送平台

在这里插入图片描述
在这里插入图片描述

这里的账号要为企业账号,个人开发者账号是不能进行应用创建的,同理不能对接推送服务,因此必须要是企业开发者账号才行。起码在OPPO开方平台上,需要这个企业开发者账号才能做应用的推送。

登录账号

在这里插入图片描述
在这里插入图片描述

选择推送服务。

在这里插入图片描述
在这里插入图片描述

申请推送,最好不要在已经上线的项目上改动,因此你可以新建一个应用来做推送的测试。

一、创建AS应用

在这里插入图片描述
在这里插入图片描述

这里的包名先复制一下,点击Finish。创建完成之后先运行到自己手机上,请不要使用模拟器或者虚拟机。

在这里插入图片描述
在这里插入图片描述

在手机上运行好了之后,安装所需要获取OPPOSign的应用,下载APK签名工具

下载后是一个rar文件,解压之后通过QQ发送到自己的是手机上,然后安装这个APK,安装好之后打开,输入刚才的包名,如下:

在这里插入图片描述
在这里插入图片描述

输入包名,然后点击获取签名按钮,就会出现签名数据,长按复制一下。

二、创建OPPO平台应用

点击创建应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建好了

在这里插入图片描述
在这里插入图片描述

下面给这个应用开通推送权限,

在这里插入图片描述
在这里插入图片描述

点击这个应用

在这里插入图片描述
在这里插入图片描述

点击申请开通

在这里插入图片描述
在这里插入图片描述

勾选上,然后提交申请。

在这里插入图片描述
在这里插入图片描述

等待审核通过,这个审核的时间大概是一天。

在这里插入图片描述
在这里插入图片描述

现在审核通过了,点击进入应用。

在这里插入图片描述
在这里插入图片描述

三、编辑推送消息

现在保证你的手机上安装了这个测试App,然后来编辑这个推送消息。

在这里插入图片描述
在这里插入图片描述

然后你会发现这个地方需要输入这个RegistrationId,它是应用在对应设备的上唯一ID,不同的应用RegistrationID不同,该ID在用户设备刷机、卸载应用、或设备长时间无连接时失效。没有它你是无法推送消息的,那么怎么来获取这个RegistrationId呢?

1. SDK集成

之前下载的签名文件夹里面有一个OPPO推送SDK文件夹

在这里插入图片描述
在这里插入图片描述

将这个aar文件复制到你项目的libs下。

在这里插入图片描述
在这里插入图片描述

然后打开app下的build.gradle进行配置,两处修改,代码如下:

代码语言:javascript
复制
	repositories {
        flatDir {
            dirs 'libs'
        }
    }
代码语言:javascript
复制
	implementation(name: 'com.heytap.msp', ext: 'aar')
在这里插入图片描述
在这里插入图片描述

2. AndroidManifest配置

打开你的AndroidManifest.xml,OPPO推送服务SDK 2.1.0版本支持的最低安卓版本为Android 4.4系统。

代码语言:javascript
复制
<uses-sdk  android:minSdkVersion="19"/>

然后是权限,如果应用无透传权限,则不用配置

代码语言:javascript
复制
	<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE"/>
    <uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE"/>

最后是服务,推送服务组件注册(如果应用无透传权限,则不用配置)

代码语言:javascript
复制
	<!--兼容Q以下版本-->
        <service
            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>

位置如下图

在这里插入图片描述
在这里插入图片描述

3. 配置应用信息

在这里插入图片描述
在这里插入图片描述

这里我标注了三个,但是在App中其实只要用到后面两个,不需要用到AppId。现在先把这几个参数配置到项目中,在com.llw.oppopush下新建一个AppParam,里面的代码如下:

代码语言:javascript
复制
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的初始化。

代码语言:javascript
复制
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中配置

在这里插入图片描述
在这里插入图片描述

下面运行一下:

在这里插入图片描述
在这里插入图片描述

点击允许就可以了。然后再看看你的日志栏。

在这里插入图片描述
在这里插入图片描述

这里打印了一个RegistrationId,这正是我们所需要的。

4. 编辑推送消息

这里是不能出现test或者测试的字样的

在这里插入图片描述
在这里插入图片描述

往下走。输入刚才拿到的RegistrationId

在这里插入图片描述
在这里插入图片描述

其他的内容就可以不填了,点击下一步,然后提交这个审核。

在这里插入图片描述
在这里插入图片描述

一般来说你提交审核之后马上就会通过审核,然后你切换到全部,点击查询就能查看到之前提交的消息审核,如上图已经通过了审核,点击右边的详情。

在这里插入图片描述
在这里插入图片描述

进入审核详情页面,这里就是你之前编辑的内容,下面有一个预推测试,点击之后你可以输入之前的RegisterId。

在这里插入图片描述
在这里插入图片描述

然后点击这个预推测试按钮,你的手机上就会收到一条通知,无论你当前的应用有没有在后台运行,都可以收到这个通知。息屏的情况下同样可以收到通知,效果如下图所示:

在这里插入图片描述
在这里插入图片描述

嗯,就是这样了,如果你要和后台对接也很简单,你只要给他传这个RegisterId就可以了,本文结束了。

结语

后面有机会我还会写其他平台的相关厂商渠道适配推送通知的文章,我是初学者-Study,山高水长,后会有期~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OPPO推送服务集成
  • 前言
  • 正文
    • 一、创建AS应用
      • 二、创建OPPO平台应用
        • 三、编辑推送消息
          • 1. SDK集成
          • 2. AndroidManifest配置
          • 3. 配置应用信息
          • 4. 编辑推送消息
      • 结语
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档