荣耀通道接入

最近更新时间:2024-03-29 17:33:31

我的收藏

操作场景

移动推送SDK 1.3.3.0 起支持荣耀推送通道接入。荣耀通道是由荣耀官方提供的系统级推送通道。在荣耀手机上,推送消息能够通过荣耀的系统通道抵达终端,并且无需打开应用,即可收到推送,更多详情请参见 荣耀推送业务介绍
说明
SDK 1.3.8.0版本起支持 Magic UI 4.0 及以上荣耀设备使用。
申请开通荣耀推送服务需荣耀开发者企业账户。
荣耀推送需要在签名包环境下才可注册厂商通道成功并通过厂商通道进行推送。
警告:
由于荣耀计划在2024年开始独立运营商业内容,并将逐步将各项系统能力从华为转移至自身,无法继续通过华为通道下发消息。因此,请您尽快接入荣耀通道,以实现荣耀的离线推送功能。

操作步骤

步骤1:获取密钥

1. 进入 荣耀开发者服务平台 注册和登录开发者账号,详情参见 账号注册认证(使用荣耀推送需注册企业开发者账号)。
2. 在荣耀开发者服务平台新建应用并申请开通推送服务,填写应用包名和证书指纹等应用信息,详情参见 申请开通推送服务 。其中获取应用证书指纹可参考 证书指纹生成指南
3. 复制应用的 AppId、Client ID 和 Client Secret 参数,分别填入**移动推送控制台** > App 推送管理 > 基础配置 > 荣耀官方推送通道栏目的字段 AppId、ClientId、SecretKey 中。

步骤2:配置内容

以下集成方式二选一。

Android Studio 集成方法

在 App 模块下的 build.gradle 文件内,完成移动推送所需的配置后,再增加以下节点:
1. 配置荣耀推送的 AppID,示例代码如下:
manifestPlaceholders = [
HONOR_APPID : "xxxx"
]
2. 导入荣耀推送相关依赖,示例代码如下:
implementation 'com.tencent.tpns:honor:[VERSION]-release'
说明
荣耀推送 [VERSION] 为当前 SDK 版本号,版本号可在 Android SDK 发布动态 查看,1.3.3.0 起支持。
荣耀推送适配 Android 11 预置 <queries> 标签,请注意升级 Android Studio 至 3.6.1 或更高版本、Android gradle build tools 插件至 3.5.4 或更高版本,否则可能导致工程构建出错。

Eclipes 集成方法

获取移动推送荣耀通道 SDK 包后,按照移动推送官网手动集成方法,在配置好移动推送主版本的基础下,进行以下设置:
1. 下载 SDK 安装包
2. 打开 Other-Push-jar 文件夹,导入荣耀推送相关 jar 包。
3. Androidmanifest.xml 文件中,新增如下配置:
<uses-permission android:name="com.hihonor.push.permission.READ_PUSH_NOTIFICATION_INFO" />

<application>

<!-- 自定义荣耀推送回调 service -->
<service
android:name="com.tencent.android.tpush.honor.HonorMessageService"
android:exported="false">
<intent-filter>
<action android:name="com.hihonor.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>

<meta-data
android:name="com.hihonor.push.sdk_version"
android:value="7.0.41.301" />

<!-- 荣耀推送 appId -->
<meta-data
android:name="com.hihonor.push.app_id"
android:value="${HONOR_APPID}" />
</application>

步骤3:开启荣耀推送

在调用移动推送 XGPushManager.registerPush 之前,开启第三方推送接口:
//打开第三方推送
XGPushConfig.enableOtherPush(getApplicationContext(), true);


//注册成功的日志如下
I/TPush: [OtherPushClient] handleUpdateToken other push token is : IQAAAACy0Ps******GlJi_5-0rpskunnNMcat35HA other push type: honor
I/TPush: [PushServiceBroadcastHandler] >> bind OtherPushToken success ack with [accId = 150000**** , rsp = 0] token = 01a22******ed343 otherPushType = honor otherPushToken = IQAAAACy0Ps******GlJi_5-0rpskunnNMcat35HA


步骤4:代码混淆

-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable

-keep class com.hihonor.push.framework.aidl.**{*;}
-keep class com.hihonor.push.sdk.**{*;}
说明
混淆规则需要放在 App 项目级别的 proguard-rules.pro 文件中。

步骤5:荣耀通道抵达回执配置

荣耀通道抵达回执需要开发者自行配置,您可参照 荣耀厂商通道回执配置指引 进行配置,完成后,可在推送记录中查看荣耀推送通道的抵达数据。

常见问题排查

荣耀推送注册错误码查询方法

若观察到如下类似日志则说明荣耀厂商通道注册失败,开发者可以通过以下方式获取荣耀推送注册错误码:
[OtherPushClient] handleUpdateToken other push token is : other push type: honor
推送服务 debug 模式下,过滤关键字 “OtherPush”,查看相关返回码日志,并前往 厂商通道注册失败排查指南 查找对应原因,获取解决办法。