操作场景
华为推送通道是由华为官方提供的系统级推送通道。在华为手机上,推送消息能够通过华为的系统通道抵达终端,并且无需打开应用,即可收到推送。
注意
本文仅适用华为通道 V2 接入,V4 接入请参见 华为通道 V4 接入。
华为推送只有在签名发布包环境下,才可收到推送消息。
华为手机中的移动推送服务,必须升级到2.5.3以上版本,否则华为通道会注册失败(依旧走移动推送的通道)。
华为通道不支持抵达回调,支持点击回调(需要自定义参数),支持透传(忽略自定义参数,但不保证到达)。
操作步骤
获取密钥
1. 进入 华为开放平台。
2. 注册和登录开发者账号,详情请参见 账号注册认证。(如果您是新注册账号,需进行实名认证)
3. 在华为推送平台中新建应用,详情请参见 创建应用。(应用包名需跟您在移动推送填写的包名保持一致)
4. 获取应用的 AppID 和 AppSecret,并且复制信息,填入控制台的应用配置 > 华为通道栏目中。
配置 SHA256 证书指纹
集成步骤
AndroidStudio 集成方法
在 App 模块下的 build.gradle 文件内,完成移动推送所需要的配置后,再增加以下的华为节点:
1. 配置华为 AppID,示例代码如下:
manifestPlaceholders = [HW_APPID: "华为的APPID"]
2. 导入华为推送相关依赖,示例代码如下:
implementation 'com.tencent.tpns:huawei:[VERSION]-release'//华为推送 [VERSION] 为当前 SDK 版本号,版本号可在 SDK 下载页查看
说明
Eclipse 集成方法
1. 下载 SDK 安装包。
2. 打开 Other-Push-jar 文件夹, 导入华为推送相关 jar 包,将 hw4tpns1.1.2.1.jar 导入项目工程中。
3. 在
AndroidManifest.xml
文件中,新增如下配置:<meta-dataandroid:name="com.huawei.hms.client.appid"android:value="您的APPID(来自华为官网)" ></meta-data><activityandroid: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-dataandroid:name="hwc-theme"android:value="androidhwext:style/Theme.Emui.Translucent" /></activity><providerandroid:name="com.huawei.hms.update.provider.UpdateProvider"android:authorities="应用包名.hms.update.provider"android:exported="false"android:grantUriPermissions="true" ></provider><receiver android:name="com.huawei.hms.support.api.push.PushEventReceiver" ><intent-filter><!-- 接收通道发来的通知栏消息,兼容老版本PUSH --><action android:name="com.huawei.intent.action.PUSH" /></intent-filter></receiver><!-- 注:华为push 需要的 end -->
4. 在 AndroidManifest.xml 增加 Receiver, 配置如下:
<receiver android:name="com.tencent.android.hwpush.HWPushMessageReceiver" ><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>
启动华为推送
在调用移动推送 XGPushManager.registerPush 前,开启第三方推送接口:
//打开第三方推送XGPushConfig.enableOtherPush(getApplicationContext(), true);
注册成功的日志如下:
I/XINGE: [XGOtherPush] other push token is : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx other push type: huaweiI/XINGE: [a] binder other push token with accid = 2100274337 token = 17c32948df0346d5837d4748192e9d2f14c81e08 otherPushType = huawei otherPushToken = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
代码混淆
-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.android.hms.agent.**{*;}
说明
混淆规则需要放在 App 项目级别的 proguard-rules.pro 文件中。
华为通道抵达回执配置
华为设备角标适配
华为设备支持设置应用角标,需要开发者做以下操作:
1. 申请应用内角标设置权限,具体实现在应用
AndroidManifest.xml
文件的 manifest
标签下添加以下权限配置:<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE "/>
2. 设置应用启动类
在管理台华为通道开启及参数配置处填写桌面图标对应的应用入口
Activity
类,如com.test.badge.MainActivity
,如图所示:

3. 角标的用法可参考 角标适配指南 文档。