容联IM SDK在5.4.0之后开始支持华为推送。开发者需要根据华为官网文档集成华为推送。 华为推送服务集成
去华为开发者联盟注册账号并登录。
在华为开发者后台创建应用,获取APPID和APP SECRET,具体可以看下华为官方介绍:创建华为应用
注册完成后,需要在云通讯开发者后台上传推送证书,云通讯管理控制台—>IM基础功能配置—>推送证书,然后输入你在华为开发者后台创建的应用的APPID、APP SECRET及包名;
作用说明:
(1) 向Push服务请求应用的唯一标示Token,触发启动Push服务,token申请成功后,结果会通过回调传给应用。应用接入Push后,必须调用该方法来获取token。方法如下:(参考Demo中PustDemoActivity)
// 获取客户端AccessToken,获取之前请先确定该应用(包名)已经在开发者联盟上创建成功,并申请、审核通过Push权益 PushManager.requestToken(PustDemoActivity.this);
(2) pushToken申请成功后,会自动回调该方法,应用可以通过该接口中 获取token。本接口必须被实现。方法如下:(参考Demo中MyReceiver)
@Override public void onToken(Context context, String token, Bundle extras){ String belongId = extras.getString("belongId"); String content = "获取token和belongId成功,token = " + token + ",belongId = " + belongId; Log.d(PustDemoActivity.TAG, content); ECDevice.reportHuaWeiToken(token); showPushMessage(PustDemoActivity.RECEIVE_TOKEN_MSG, content); }
(3) 将获取到的Token,上报云通讯SDK。方法如下:(参考Demo中MyReceiver)
//上报Token ECDevice.reportHuaWeiToken(token);
//以下是华为的 //第三方相关 :接收Push消息(注册、Push消息、Push连接状态、标签,LBS上报结果)广播 <receiver android:name=".ui.huawei.MyReceiver"> <intent-filter> //必选,用于接收token <action android:name="com.huawei.android.push.intent.REGISTRATION" /> //必选,用于接收消息 <action android:name="com.huawei.android.push.intent.RECEIVE" /> //可选,用于点击通知栏或通知栏上的按钮后触发onEvent回调 <action android:name="com.huawei.android.push.intent.CLICK" /> //可选,查看push通道是否连接,不查看则不需要 <action android:name="com.huawei.intent.action.PUSH_STATE" /> //可选,标签、地理位置上报回应,不上报则不需要 <action android:name="com.huawei.android.push.plugin.RESPONSE" /> </intent-filter> <meta-data android:name="CS_cloud_ablitity" android:value="云通讯" /> </receiver> //备注:Push相关的android组件需要添加到业务的AndroidManifest.xml, //Push相关android组件运行在另外一个进程是为了防止Push服务异常而影响主业务 //PushSDK:PushSDK接收外部请求事件入口 <receiver android:name="com.huawei.android.pushagent.PushEventReceiver" android:process=":pushservice"> <intent-filter> <action android:name="com.huawei.android.push.intent.REFRESH_PUSH_CHANNEL" /> <action android:name="com.huawei.intent.action.PUSH" /> <action android:name="com.huawei.intent.action.PUSH_ON" /> <action android:name="com.huawei.android.push.PLUGIN" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <action android:name="android.intent.action.PACKAGE_REMOVED" /> <data android:scheme="package" /> </intent-filter> </receiver> <receiver android:name="com.huawei.android.pushagent.PushBootReceiver" android:process=":pushservice"> <intent-filter> <action android:name="com.huawei.android.push.intent.REGISTER" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> <meta-data android:name="CS_cloud_version" android:value="\u0032\u0037\u0030\u0035" /> </receiver> // PushSDK:Push服务 <service android:name="com.huawei.android.pushagent.PushService" android:process=":pushservice" />
文档更新时间:2017年9月21日