华为推送集成

容联IM SDK在5.4.0之后开始支持华为推送。开发者需要根据华为官网文档集成华为推送。 华为推送服务集成

1.创建华为应用

去华为开发者联盟注册账号并登录。

在华为开发者后台创建应用,获取APPID和APP SECRET,具体可以看下华为官方介绍:创建华为应用

2.上传推送证书

注册完成后,需要在云通讯开发者后台上传推送证书,云通讯管理控制台—>IM基础功能配置—>推送证书,然后输入你在华为开发者后台创建的应用的APPID、APP SECRET及包名;

3.导入SDK(jar包可以从Demo中提取)

SDK.png

4.导入推送接收类文件(文件可以从Demo中提取)

Receiver.png

作用说明:

(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);
                    

5.华为推送清单文件配置

                	
//以下是华为的 
//第三方相关 :接收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日