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.** {*;}