
本文共 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发送。
发表评论
最新留言
关于作者
