tencent cloud

移动推送

产品动态
公告
产品功能动态
Android SDK 发布动态
iOS SDK 发布动态
macOS SDK 发布动态
产品简介
产品概述
产品优势
应用场景
全球化部署
购买指南
价格总览
购买指引
计费模式
免费试用
欠费说明
快速入门
创建产品和应用
Android 快速接入
iOS 快速接入
创建推送任务
查询推送记录
推送测试方法指引
产品限制说明
操作指南
推送管理
推送高级功能
实践教程
iOS 平台角标功能实践
API 文档
简介
API 概览
调用方式
推送相关接口
标签相关接口
账号相关接口
统计相关接口
用户属性相关接口
服务端错误码
服务端 SDK
API(Java)
SDK 文档
Android 接入指南
iOS 接入指南
客户端集成插件
macOS接入指南
用户及权限
快速入门配置
进阶自定义配置
资源标签
服务协议
服务等级协议
开发者协议
常见问题
iOS 常见问题
Android 常见问题
Flutter 常见问题
其他问题
移动推送政策
移动推送隐私协议
TPNS 数据处理和安全协议
Developer Agreement
联系我们
词汇表

华为通道 V5 接入

PDF
聚焦模式
字号
最后更新时间: 2024-01-16 17:39:39

操作场景

移动推送跟进各厂商通道推送服务的更新进度,提供集成华为推送 HMS Core Push SDK 的插件依赖包供用户选择使用。
注意:
华为推送只有在签名发布包环境下,才可注册厂商通道成功并通过厂商通道进行推送。
华为通道不支持抵达回调,支持点击回调。

在华为推送平台配置应用

获取密钥

1. 进入 华为开放平台
2. 注册和登录开发者账号,详情参见 账号注册认证(如果您是新注册账号,需进行实名认证)。
3. 在华为推送平台中新建应用,详情参见 创建应用(应用包名需跟您在移动推送平台填写的一致)。
4. 进入我的项目 > 项目设置 > 常规中的应用获取并复制APPID和Client Secret,填入 移动推送控制台>配置管理>基础配置>华为官方推送通道栏目中。

配置 SHA256 证书指纹

获取 SHA256 证书指纹,并在华为推送平台中配置证书指纹,单击

保存。证书指纹获取可参见 生成签名证书指纹



获取华为推送配置文件

登录华为开放平台,进入我的项目> 选择项目 > 项目设置,下载华为应用最新配置文件 agconnect-services.json。



打开推送服务开关

1. 在华为推送平台,单击全部服务>推送服务,进入推送服务页面。


2. 在“推送服务”页面,单击立即开通,详情请参见 打开推送服务开关



SDK 集成(二选一)

Android Studio Gradle 自动集成

1. 在 Android 项目级目录 build.gradle 文件,buildscript > repositories & dependencies 下分别添加华为仓库地址和 HMS gradle 插件依赖:
buildscript {
repositories {
google()
maven {url 'https://developer.huawei.com/repo/'} // 华为 maven 仓库地址
}
dependencies {
// 其他classpath配置
classpath 'com.huawei.agconnect:agcp:1.6.0.300' // 华为推送 gradle 插件依赖
}
}
2. 在 Android 项目级目录 build.gradle 文件,allprojects>repositories下添加华为依赖仓库地址:
allprojects {
repositories {
google()
maven {url 'https://developer.huawei.com/repo/'} // 华为 maven 仓库地址
}
}
3. 将从华为推送平台获取的应用配置文件 agconnect-services.json 拷贝到 app 模块目录下(请勿放在子模块下)。


4. 在 app 模块下 build.gradle 文件头部添加以下配置(请勿放在子模块 build.gradle 下):
// app 其他 gradle 插件
apply plugin: 'com.huawei.agconnect' // HMS SDK gradle 插件
android {
// app 配置内容
}
5. 在 app 模块下 build.gradle 文件内导入华为推送相关依赖:
dependencies {
// ... 程序其他依赖
implementation 'com.tencent.tpns:huawei:[VERSION]-release' // 华为推送 [VERSION] 为当前最新 SDK 版本号,版本号可在 Android SDK 发布动态 查看
implementation 'com.huawei.hms:push:6.5.0.300' // HMS Core Push 模块依赖包
}
说明:
华为推送 hms:push 依赖自6.1.300起适配 Android 11预置 <queries> 标签,请注意升级 Android Studio 至3.6.1或更高版本、Android Gradle 插件至 3.5.4或更高版本,否则可能导致工程构建出错。
华为推送 [VERSION] 为当前最新 SDK 版本号,版本号可在 Android SDK 发布动态 查看。
移动推送 Android SDK 自1.2.1.3版本起正式支持华为推送 V5 版本,请使用1.2.1.3及以上版本的移动推送华为依赖以避免集成冲突问题。

Android Studio 手动集成

针对开发者内部构建环境无法访问华为 maven 仓库的情况,提供以下手动集成方法。
1. 下载 SDK 安装包
2. 打开 Other-Push-jar 文件夹, 导入 huaweiv5 推送相关依赖包,将全部 jar、aar 包复制到项目工程中。
3. 在 Android 项目级目录 build.gradle 文件,buildscript > dependencies下添加 HMS gradle 插件的依赖:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// 其他 classpath 配置
classpath files('app/libs/agcp-1.4.1.300.jar') // 华为推送 gradle 插件依赖
}
}
4. 将从华为推送平台获取的应用配置文件 agconnect-services.json 拷贝到 app 模块目录下。


5. 在 app 模块下 build.gradle 文件头部添加以下配置:
// app 其他 gradle 插件
apply plugin: 'com.huawei.agconnect' // HMS SDK V4 gradle 插件
android {
// app 配置内容
}
6. 在 app 模块下 build.gradle 文件内导入华为推送相关依赖:
dependencies {
// ... 程序其他依赖
implementation files('libs/tpns-huaweiv5-1.2.1.1.jar') // 适用于 HMS Core 版本的 移动推送 插件
implementation fileTree(include: ['*.aar'], dir: 'libs') // HMS Core Push 模块依赖包
}
7. 在 manifest 文件 <application> </application> 标签内添加以下组件:
<application>
<service
android:name="com.huawei.android.hms.tpns.HWHmsMessageService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>

启动华为推送

1. 在调用移动推送注册接口 XGPushManager.registerPush 前,开启第三方推送接口:
//打开第三方推送
XGPushConfig.enableOtherPush(getApplicationContext(), true);
2. 注册成功的日志如下:
V/TPush: [XGPushConfig] isUsedOtherPush:true
E/xg.vip: get otherpush errcode: errCode : 0 , errMsg : success
V/TPush: [XGPushConfig] isUsedOtherPush:true
I/TPush: [OtherPushClient] handleUpdateToken other push token is : IQAAAACy0PsqAADxfCrWG3kupbOraeAiYoo9n2B-bAfb2d--kctc8E_UnY_mrIdg9ionukZvC******dVD8GlJi_5-0rpskunnNMcat35HA other push type: huawei

代码混淆

1. 将以下混淆规则添加在 App 项目级别的 proguard-rules.pro 文件中。
-ignorewarnings
-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.agconnect.**{*;}
2. 如应用使用了 AndResGuard 插件,请在 AndResGuard 配置白名单中添加以下内容。如果未使用 AndResGuard 插件,则请忽略该步骤。
whiteList = [
"R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"
]
说明:
更多混淆配置请参见 华为推送配置混淆脚本

高级配置(可选)

华为通道抵达回执配置

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

华为设备角标适配

华为设备支持设置应用角标,需要开发者申请应用内角标设置和设置应用启动类权限,详情请参见 角标适配指南 文档。

常见问题排查

华为推送注册错误码查询方法

华为推送服务接入过程配置要求较严格,若观察到如下类似日志则说明华为厂商通道注册失败,开发者可以通过以下方式获取华为推送注册错误码:
[OtherPushClient] handleUpdateToken other push token is : other push type: huawei
推送服务 debug 模式下,过滤关键字“OtherPush”或“HMSSDK” ,查看相关返回码日志(例如 [OtherPushHuaWeiImpl] other push huawei onConnect code:907135702),并前往 厂商通道注册失败排查指南 查找对应原因,获取解决办法。

通过华为通道下发的通知,为什么没有通知提醒?

华为推送从 EMUI 10.0版本开始将通知消息智能分成两个级别:一般与重要。EMUI 10.0之前的版本没有对通知消息进行分类,只有一个级别,消息全部通过“默认通知”渠道展示,等价于 EMUI 10.0的重要级别消息。若通知被归类为“一般”级别,则没有震动、响铃、和状态栏图标提示,目前可通过自定义通知渠道将消息级别设为“重要”;但遵照华为推送相关规则,最终展示效果仍将与华为推送智能分类计算出的级别共同决定,两者取低,例如重要与一般取一般。详情请参见 华为消息分类使用指南

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈