在即时通讯 IM 中集成魅族推送

大约 2 分钟

在即时通讯 IM 中集成魅族推送

环信即时通讯 IM SDK 中已集成魅族推送相关逻辑,你还需要完成以下步骤。

步骤一 在魅族开发者后台创建应用

在魅族开发者后台创建应用,开启推送服务,并上传对应的证书指纹。详见魅族官方介绍:Flyme 推送服务集成open in new window

步骤二 上传推送证书

环信即时通讯云控制台open in new window上传魅族推送证书。

  1. 环信即时通讯云控制台open in new window首页的应用列表中,点击目标应用的操作栏中的管理

  2. 在左侧导航栏中,选择即时通讯 > 功能配置 > 消息推送 > 证书管理,点击添加推送证书

  3. 添加推送证书对话框中选择 魅族 页签,配置魅族推送参数。参数相关信息,详见你在 flyme 推送平台open in new window创建的应用的 APP IDAPP SECRET 以及程序的 包名

image

参数类型是否必需描述
证书名称String填写魅族 App ID。
推送密钥String填写魅族 App Secret。
应用包名String填写魅族 App package name。
ActivityString选择点击通知后的动作。
推送送达回执String
- 开启
- 关闭

步骤三 集成魅族推送 SDK

  1. 配置魅族推送远程依赖包。

    app level/build.gradle 中添加依赖。

    dependencies{
        // 从 PushSDK4.1.0 开始 其已发布⾄ mavenCentral
        implementation 'com.meizu.flyme.internet:push-internal:4.3.0'
    }
    
  2. 配置 AndroidManifest.xml

    • 推送服务需要的权限列表:
    <!-- 魅族推送配置 start-->
    <!-- 兼容 flyme5.0 以下版本,魅族内部集成 pushSDK 必填,不然无法收到消息-->
    <uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" />
    <permission
        android:name="${applicationId}.push.permission.MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.push.permission.MESSAGE" />
    <!-- 兼容 flyme3.0 配置权限-->
    <uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
    <permission
        android:name="${applicationId}.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    <!-- 魅族推送配置 end-->
    
    • 推送服务需要的 receiver
    <!-- MEIZU 推送配置 start -->
    <receiver android:name="com.hyphenate.push.platform.meizu.EMMzMsgReceiver">
        <intent-filter>
            <!-- 接收 push 消息 -->
            <action android:name="com.meizu.flyme.push.intent.MESSAGE"
                />
            <!-- 接收 register 消息 -->
            <action
                android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
            <!-- 接收 unregister 消息-->
            <action
                android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK"/>
            <!-- 兼容低版本 Flyme3 推送服务配置 -->
            <action android:name="com.meizu.c2dm.intent.REGISTRATION"
                />
            <action android:name="com.meizu.c2dm.intent.RECEIVE" />
            <category android:name="${applicationId}"></category>
        </intent-filter>
    </receiver>
    <!-- MEIZU 推送配置 end -->
    
  3. 在即时通讯 IM SDK 初始化时,配置启用魅族推送。

    EMOptions options = new EMOptions();
    ...
    EMPushConfig.Builder builder = new EMPushConfig.Builder(this);
    builder.enableMeiZuPush(String appId,String appKey);
    // 将 pushconfig 设置为 ChatOptions
    options.setPushConfig(builder.build());
    // 初始化 IM SDK
    EMClient.getInstance().init(this, options);