概述

Android

iOS

REST API

服务端SDK

4. Android SDK 集成厂商推送

ixintui Push SDK集成了小米推送、华为推送、魅族推送,如使用以上推送,请参考本文档配置。

4.1 注册

  • 如使用厂商推送,必须使用以下注册接口。
//请一定确保四个参数都有值
//参数appKey为应用从ixintui申请的应用唯一标识符
//参数channel标识应用的分发渠道,用于统计推送信息,
//参数appVersion标识应用版本信息,用于统计推送信息
//参数miAppId小米appId
//参数miAppKey小米appKey
//参数mzAppId魅族appId
//参数mzAppKey魅族appKey
PushSdkApi.register(this, appKey, channel, appVersion, miAppId, miAppKey, mzAppId, mzAppKey);    
  • 使用接口PushSdkApi.register(this, appKey, channel, appVersion);无效。

4.2 小米推送配置

  • ixintui Push SDK V1.8.7版本集成小米推送,如使用小米推送,请使用大于V1.8.7版本。

4.2.1 Permission权限配置

  • 为保证小米推送的正常使用,请配置以下权限:
<!--请将yourpackage改为应用包名-->
<permission
    android:name="yourpackage.permission.MIPUSH_RECEIVE"
    android:protectionLevel="signature" />
<uses-permission android:name="yourpackage.permission.MIPUSH_RECEIVE" />

4.2.2 AndroidManifest配置

<!--以下为小米推送配置,v1.8.7新增功能,如使用小米推送请务必添加,不使用请忽略-->
<receiver
    android:name="com.ixintui.push.MiPushReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.xiaomi.mipush.ERROR" />
    </intent-filter>
</receiver>

<service
    android:name="com.xiaomi.push.service.XMPushService"
    android:enabled="true"
    android:process=":pushservice" />
<service
    android:name="com.xiaomi.push.service.XMJobService"
    android:enabled="true"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:process=":pushservice" />
<service
    android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
    android:enabled="true"
    android:exported="true" />
<service
    android:name="com.xiaomi.mipush.sdk.MessageHandleService"
    android:enabled="true" />
<receiver
    android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</receiver>
<receiver
    android:name="com.xiaomi.push.service.receivers.PingReceiver"
    android:exported="false"
    android:process=":pushservice">
    <intent-filter>
        <action android:name="com.xiaomi.push.PING_TIMER" />
    </intent-filter>
</receiver>

4.2.3 混淆配置

-keep class com.xiaomi.** {*;} 

4.3 华为推送配置

4.3.1 集成说明

  • ixintui Push SDK从V1.9.2版本开始集成成华为推送服务。
  • ixintui Push SDK从V1.9.9版本开始,升级使用hms(华为移动)服务。
  • 以下配置从V1.9.9开始适用,如使用旧版SDK,请参见旧版开发文档。
  • 除ixintui Push SDK外,请添加jar包:\AndroidPushSDK\libs\HMS_SDK_Agent_2.5.3.302.jar,HMS_SDK使用hms服务版本为2.5.3.302,包含hms服务核心jar包和Agent(所有服务),直接依赖jar即可,无需添加Agent代码,如需升级请联系客服。
  • 除hms推送服务外,还需使用其他服务,无需额外添加jar或代码,使用方式与hms开发文档一致。
  • 注意:为保证服务的正常运行,请务必使用ixintui Push SDK中提供的hms jar包。

4.3.2 AndroidManifest配置

<!--以下为华为推送配置,V1.9.9升级hms服务后配置,如使用华为推送请务必添加,使用旧版本请替换为以下配置,不使用请忽略-->
 <receiver android:name="com.ixintui.push.HWPushReceiver">
     <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" />
     </intent-filter>
 </receiver>

 <receiver android:name="com.huawei.hms.support.api.push.PushEventReceiver">
     <intent-filter>
         <!-- 接收通道发来的通知栏消息,兼容老版本PUSH -->
         <action android:name="com.huawei.intent.action.PUSH" />
     </intent-filter>
 </receiver>
 <activity
     android:name="com.huawei.hms.activity.BridgeActivity"
     android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale"
     android:excludeFromRecents="true"
     android:exported="false"
     android:hardwareAccelerated="true"
     android:theme="@android:style/Theme.Translucent">
     <meta-data
         android:name="hwc-theme"
         android:value="androidhwext:style/Theme.Emui.Translucent" />
 </activity>
 <provider
     android:name="com.huawei.hms.update.provider.UpdateProvider"
     <!--请将yourpackage改为应用包名-->
     android:authorities="yourpackage.hms.update.provider"
     android:exported="false"
     android:grantUriPermissions="true">
 </provider>
 <activity
     android:name="com.huawei.android.hms.agent.common.HMSAgentActivity"
android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale"
     android:excludeFromRecents="true"
     android:exported="false"
     android:hardwareAccelerated="true"
     android:theme="@android:style/Theme.Translucent">
     <meta-data
         android:name="hwc-theme"
         android:value="androidhwext:style/Theme.Emui.Translucent" />
 </activity>
 <meta-data
     android:name="com.huawei.hms.client.appid"
     <!--请将yourappid替换为应用appid-->
     android:value="appid=yourappid"></meta-data>

4.3.2 混淆配置

-ignorewarning
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}

-keep class com.huawei.gamebox.plugin.gameservice.**{*;}

-keep public class com.huawei.android.hms.agent.** extends android.app.Activity { public *; protected *; }
-keep interface com.huawei.android.hms.agent.common.INoProguard {*;}
-keep class * extends com.huawei.android.hms.agent.common.INoProguard {*;}  

-keep class com.huawei.android.hms.agent.** {*;}

4.4 魅族推送配置

  • ixintui Push SDK V1.9.3版本集成魅族推送,如使用魅族推送,请使用大于V1.9.3版本。

4.4.1 AndroidManifest配置

<!-- 以下为魅族推送配置,v1.9.3新增功能,如使用魅族推送请务必添加,不使用请忽略 -->
<receiver android:name="com.ixintui.push.MZPushReceiver">
    <intent-filter>
        <!-- 接收push消息 -->
        <action android:name="com.meizu.flyme.push.intent.MESSAGE" />
        <!-- 接收register消息-->
        <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
        <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
        <action android:name="com.meizu.c2dm.intent.REGISTRATION" />
        <action android:name="com.meizu.c2dm.intent.RECEIVE" />
        <!--请将yourpackage改为应用包名-->
        <category android:name="yourpackage"></category>
    </intent-filter>
</receiver>
<!-- 必要配置,提高push消息送达率 -->
<service
    android:name="com.meizu.cloud.pushsdk.NotificationService"
    android:exported="true" />
<!-- 必要配置,pushSDK内部组件 -->
<receiver android:name="com.meizu.cloud.pushsdk.SystemReceiver">
    <intent-filter>
        <action android:name="com.meizu.cloud.pushservice.action.PUSH_SERVICE_START" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</receiver>  

4.4.2 混淆配置

-keep class com.xiaomi.** {*;}