华为推送
容联IM SDK在5.4.0之后开始支持华为推送。开发者需要根据华为官网文档集成华为推送。 华为推送服务集成
1、创建华为应用
(1)去华为开发者联盟注册账号并登录。
(2)在华为开发者后台创建应用,获取APPID和APP SECRET,具体可以参考华为官方介绍:创建华为应用
2、上传推送证书
注册完成后,需要在云通讯开发者后台上传推送证书,云通讯管理控制台—>IM基础功能配置—>推送证书,然后输入你在华为开发者后台创建的应用的APPID、APP SECRET及包名;
导入SDK(jar包可以从Demo中提取)
3、导入推送接收类文件(文件可以从Demo中提取)
作用说明:
(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);
4、华为推送清单文件配置
- //以下是华为的 //第三方相关 :接收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" />