oppo推送Android端集成
发布日期:2021-05-07 10:20:52 浏览次数:42 分类:原创文章

本文共 3784 字,大约阅读时间需要 12 分钟。

SDK说明

1.3.服务支持
1)支持平台

目前支持 ColorOS3.1及以上的系统的oppo的机型,一加5/5t及以上机型,realme所有机型。

2)版本说明
目前SDK只支持Android 4.0或以上版本的手机系统。

3)通知消息类型

OPPO推送暂时只支持通知栏消息的推送。消息下发到OS系统模块并由系统通知模块展示,在用户点击通知前,不启动应用。整个过程环保省电。

SDK集成步骤

1.导入推送aar包

将解压后的libs文件夹中com.heytap.msp.aar(com.heytap.msp.aar为集成的jar包名字)拷贝到您的工程的libs文件夹中。

2.引用aar包到工程

在android项目app目录下的build.gradle中添加aar依赖。

dependencies {	//...    implementation fileTree(dir: 'libs', include: ['*.jar'])	implementation fileTree(include: ['*.aar'], dir: 'libs')}

3.配置AndroidManifest.xml
权限列表(如果应用无透传权限,则不用配置)

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

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

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

4.混淆配置

1.-keep public class * extends android.app.Service2.-keep class com.heytap.msp.** { *;}

注册推送服务
1)应用必须要调用init(…)接口,才能执行后续操作。

2)由于不是所有平台都支持OPPO PUSH,提供接口HeytapPushManager.isSupportPush()方便应用判断是否支持,支持才能执行后续操作。

3)通过调用HeytapPushManager.register(…)进行应用注册,注册成功后,您可以在ICallBackResultService的onRegister回调方法中得到RegId,您可以将RegId上传到自己的服务器,方便向其发消息。初始化相关参数具体要求参考详细API说明中的初始化部分。

4)为了提高push的注册率,你可以在Application的onCreate中初始化push。你也可以根据需要,在其他地方初始化push。如果第一次注册失败,第二次可以直接调用PushManager.getInstance().getRegister()进行重试,此方法默认会使用第一次传入的参数掉调用注册。

 private static void initOppo(Context context) {    Log.i(TAG, "initOppo");    try {        Log.i("初始化注册:调用register接口");        HeytapPushManager.init(context, true);        HeytapPushManager.register(context, AppParam.OPPO.APP_KEY, AppParam.OPPO.APP_SECRET, mPushCallback);        HeytapPushManager.requestNotificationPermission();    } catch (Exception e) {        e.printStackTrace();    }}

其中的接口ICallBackResultService mPushCallback 定义实现如下:

private static ICallBackResultService mPushCallback = new ICallBackResultService() {	//注册的结果,如果注册成功,registerID就是客户端的唯一身份标识    @Override    public void onRegister(int code, String s) {        if (code == 0) {            Log.i("注册成功:registerId:" + s);        } else {            Log.i("注册失败:code=" + code + ",msg=" + s);        }    }	//反注册的结果    @Override    public void onUnRegister(int code) {        if (code == 0) {            Log.i("注销成功:code=" + code);        } else {            Log.i("注销失败:code=" + code);        }    }	//获取当前的push状态返回,根据返回码判断当前的push状态,返回码具体含义可以参考[错误码]    @Override    public void onGetPushStatus(final int code, int status) {        if (code == 0 && status == 0) {            Log.i("Push状态正常:code=" + code + ",status=" + status);        } else {            Log.i("Push状态错误:code=" + code + ",status=" + status);        }    }	//获取当前通知栏状态,返回码具体含义可以参考[错误码]    @Override    public void onGetNotificationStatus(final int code, final int status) {        if (code == 0 && status == 0) {            Log.i("通知状态正常:code=" + code + ",status=" + status);        } else {            Log.i("通知状态错误:code=" + code + ",status=" + status);        }    }	//获取设置推送时间的执行结果    @Override    public void onSetPushTime(final int code, final String s) {        Log.i("SetPushTime:code=" + code + ",result:" + s);    }};

onRegister接口返回的RegisterID是当前客户端的唯一标识,App开发者可以上传保存到应用服务器中,在发送push消息是可以指定RegisterID发送。

上一篇:vivo推送Android端集成
下一篇:HMS推送Android端集成

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年03月26日 02时14分56秒