oppo推送Android端集成

本文介绍了Oppo推送服务的SDK集成步骤,包括支持平台、版本要求、通知类型以及关键步骤如导入aar包、配置AndroidManifest.xml、混淆处理和应用注册。重点讲解了如何检查支持、注册服务以及回调处理方法。
摘要由CSDN通过智能技术生成

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.Service
2.-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发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值