华为推送

容联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" />