如果开发者还没有华为开发者帐号,请访问华为开发者联盟进行帐号注册认证。
详细开发者网站帐号注册流程请参考:
https://developer.huawei.com/consumer/cn/devservice/doc/20300
说明:
如果开发者的应用此前已接入过其他HMS Core的服务并且配置过应用签名,请跳过此章节。
在申请华为支付服务前,请开发者先确定自己的应用包名,并创建开发工程,同时请确保开发环境已安装jdk。
步骤:
1. 请在开发环境生成keystore签名证书,该配置属于通用技术,此处不详细描述,假设开发者生成的证书名为mykeystore.keystore。
2. 打开命令行工具(使用CMD命令),执行cd命令进入keytool.exe所在的目录。
cd %JAVA_HOME%/bin
3. 执行命令keytool -list -v -keystore <keystore-file>,按命令行提示进行操作。
其中 <keystore-file>是应用签名文件的完整路径。
例如:C:\Program Files (x86)\Java\jdk1.7.0_25\bin>keytool -list -v -keystore E:\HMS_SDK_2.5.1.300\Sample\HMSSdkSample_2.5.1.300_AS\HmsSample\mykeystore.keystore
4. 获取对应的SHA256指纹,如图2-4所示。
图2-4 SHA256指纹

步骤1:创建项目
项目是您在AGC中资源的组织实体,您可以将您的一个应用的不同平台版本添加到同一个项目中。在创建您的应用前,您需要先在AGC中创建您的项目。
录AppGallery Connect 网站,选择“我的项目”。
在我的项目页面点击“添加项目”。
输入您预先规划的项目名称,点击“确定”。
项目创建成功后,会自动进入“项目设置”页面。
此时该项目中还没有应用,您下一步需要在该项目中添加应用。
步骤2:创建应用
AGC服务主要在应用开发过程中提供各种开发能力,如果您还没有在您的AGC项目中添加应用,请先完成应用的添加。
在AppGallery Connect 网站首页选择“我的项目”。
在项目列表中点击您的项目。
在页面顶部的项目名称右边,选择“添加应用”。
在“添加应用”页面填写应用信息并确认。

| 参数 | 说明 |
|
选择平台
|
选择Android
|
|
支持设备
|
选择大屏
|
|
应用名称
|
当前产品下第1个应用的应用名称,要求4-64个字符即可,创建后支持修改。
|
|
应用包名
|
当前产品下第1个应用的应用包名,必须与最终发布的应用包名保持一致。 注意: 应用包名必须与最终发布的APK包名一致,如需集成HMS Core SDK中的支付能力进行应用内收费,必须以.HUAWEI或者.huawei结尾,配置后不可修改,请谨慎填写。 |
|
应用分类
|
● 应用:普通应用。 |
|
默认语言
|
应用的默认语言,根据实际情况选择。
|
开发者如果接入华为支付服务,需要在开发者联盟网站创建应用并开通支付服务,本章节指导开发者如何创建应用并完成支付服务的开通。
步骤1:
以华为开发者帐号登录“华为开发者联盟”,点击右上角“管理中心”,进入管理中心。
点击“应用服务-开发服务-配置”,将华为支付服务的入口显示于管理中心,如图2-5所示。
图2-5配置开发服务
步骤2:
在弹出的选择框内选择"支付", 勾选完毕后点击"关闭",如图2-6所示。
图2-6 配置支付服务
回到“管理中心”,在开发服务页面下会显示“支付”,如图2-7所示。
图2-7 完成配置支付服务
步骤3:
点击图2-7中的"支付",进入支付管理页面,点击"申请支付服务"。如图2-8所示。
图2-8 申请支付服务
步骤4:
设置应用类型,选择“电视应用”。如图2-9所示。
图2-9设置支付服务信息

步骤5:
完善应用信息。如图2-11所示。
● 产品选择上一章节已经创建的产品“示例支付服务”。
● 应用包名必须和APK包名保持一致,且不可更改,请谨慎填写。
● 回调地址是应用开发者侧配置的服务器地址,用于在支付成功后接收华为支付服务器的回调订单信息,如果开发者接入的应用是没有应用服务器的单机应用,可以不配置。此内容配置后可修改。
● SHA256证书指纹:《配置应用签名》章节获取的指纹信息(一般只要配置一个,如果该应用存在多个证书指纹,可以配置多个)。
图2-11 完善应用信息
步骤6:
点击“提交”后开发者已经完成为这个应用申请支付服务的操作。
步骤7:
获取支付服务参数
开发者为“示例支付服务”APP开通支付服务后,开发者联盟会分配服务参数,包括APPID和APP SECRET,用于开发者集成HMS Core SDK时使用。获取服务参数操作如下:
点击需要查询的产品,如图2-12所示,产品服务参数如图2-13所示。
图2-12支付产品列表
图2-13服务参数详情
页面各参数含义如表3-1所示。
表3-1 服务参数说明
| 参数名 |
对应HMS Core SDK参数 |
说明 |
| APP ID |
applicationID |
华为开发者联盟为APP分配的唯一标识。 |
| APP SECRET |
应用秘钥 |
华为开发者联盟为APP分配的唯一秘钥。 |
| 支付ID |
merchantId |
华为开发者联盟为开发者分配的唯一标识。 |
| CPID |
merchantId |
华为开发者联盟为开发者分配的唯一标识。 |
| 支付私钥 |
无 |
RSA私钥,用于开发者APP调用HMS Core SDK支付接口时,对请求参数进行签名。 |
| 支付公钥 |
无 |
RSA公钥,用于开发者APP收到HMS Core SDK返回的支付结果时,对响应参数进行验签。 |
开发者接入HMS Core服务时需要同时集成HMS Core SDK Agent(简称Agent)和HMS Core SDK,HMS Core SDK提供了原生的接口,HMS Core SDK Agent是对HMS Core SDK原生接口的二次封装,处理了部分必要的接入逻辑而不再将它们暴露给开发者。
开发者仅需要了解并调用HMS Core SDK Agent接口即可,大大提升接入效率,降低出错几率。
APP->HMS Core SDK Agent->HMS Core SDK的关系如图所示。

下载HMS Core SDK Agent套件(必选)
| 版本 |
获取方法 |
| HMS-TV SDK Agent 2.7.1.302 |
此SDK已下架,请在线咨询客服。 |
针对不同的开发环境,华为提供了2种HMS Core SDK的集成方式,请开发者自行选择其中一个接入。
下载匹配的HMS Core SDK(二选一)
| 版本 | 获取方法 |
| HMS-TV SDK 2.7.1.302 | 此SDK已下架,请在线咨询客服。 |
AndroidStudio开发环境
Gradle+maven集成方式
步骤 1 配置maven仓。
1. 打开项目的build.gradle文件,如图3-1框中的文件。
图3-1 项目的build.gradle位置
2. 在allprojects->repositories 里面配置HMS Core SDK的maven仓。
allprojects {
repositories {
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
步骤 2 配置项目依赖。
1. 打开子工程app下的build.gradle文件,如图3-2框中的文件。
图3-2 子工程的build.gradle位置在示例图

2. 配置编译依赖。
dependencies {
implementation 'com.huawei.android.hms:iap-tv:{version}'
}
说明:{version} 替换为实际的版本号,如:implementation 'com.huawei.android.hms:iap-tv:2.7.1.302' 。
步骤 3 同步修改的文件。
1. 重新打开修改完的gradle文件,右上方出现Sync Now链接。

2. 点击“Sync Now”等待同步完成。
说明:
如果出现错误,请检查网络连接是否正常,以及检查gradle文件是否正确。
步骤 4 多语言设置。
HMS Core SDK支持全球多种语言(后续将逐步增加对新语言的支持)。
● 如果您的应用不需要设置只支持某些特定语言,则请忽略此步骤。
● 如果您的应用需要设置只支持某些特定语言,请最少要支持en(英文) 和 zh-rCN(简体中文)两种语言。在Android Studio工程的build.gradle中配置resConfigs,配置样例如下:
android {
defaultConfig {
...
resConfigs "en", "zh-rCN","其他应用需要支持的语言"
}
}
通用包集成方式
解压HMS_SDK_{version}.zip
推荐使用“Gradle+maven集成方式”,如果此方式无法正常接入HMS Core SDK,请参考本章节的方式接入。
解压hmssdk_gradle_{version}.zip目录如表3-2所示。
表3-2 通用包目录说明
| 目录 | 说明 | 使用方式 |
| libs/hmssdk-tv-{version}.jar | 包含HMS所有功能的jar包。通用包不再按照业务功能分成多个jar包,hmssdk-tv-{version}.jar包含帐号、支付服务。 | 请直接将libs目录拷贝到应用工程根目录。 |
| res/ | HMS Core SDK需要使用的资源目录,包含多国语言。应用如果不需要集成多种语言的,可以适当裁剪。但是必须保留默认语言和简体中文。 | 请直接将res目录拷贝到应用工程根目录。 |
| assets/ | HMS Core SDK请求华为服务器需要使用的证书文件 | 请直接将assets目录拷贝到应用工程根目录。 |
集成工程
集成HMS Core SDK Agent
步骤 1 解压HMSAgent_tv_{version}.zip包,生成目录和文件,包括HMSAgent的示例工程和脚本文件。
| 脚本文件 |
说明 |
备注 |
| GetHMSAgent_cn.bat |
windows批处理脚本,用于从示例代码中提取所需要模块的HMSAgent代码(只包含)需要的模块。请直接运行,根据提示操作即可。如果由于PC环境问题导致脚本无法运行,请手动拷贝hmsagents\src\main\到 copysrc\。 |
中文脚本,适用于发行区域为中国大陆地区的应用和游戏使用。 |
| GetHMSAgent_oversea.bat |
windows批处理脚本,用于从示例代码中提取所需要模块的HMSAgent代码(只包含)需要的模块。请直接运行,根据提示操作即可。如果由于PC环境问题导致脚本无法运行,请手动拷贝hmsagents\src\main\到 copysrc\。 |
英文脚本,适用于发行区域为非中国大陆地区的应用和游戏使用。 |
步骤 2 执行GetHMSAgent_xx.bat生成copysrc的文件夹,里面是根据您选择需要集成HMS服务,抽取后的HMSAgent代码(java 文件夹)和manifest文件(AndroidManifest.xml)。
步骤 3 拷贝copysrc/java里面的代码到您现有的工程src目录下。请保持HMSAgent代码的包的路径和结构不变。AndroidManifest.xml仅供配置参考。
步骤 1 (必选)在application节点下增加APPID。
<meta-data android:name="com.huawei.hms.client.appid" <!-- value的值“xxx”用实际申请的应用ID替换,来源于开发者联盟网站应用的服务详情。--> android:value="appid=xxx"> </meta-data>
步骤 2 (必选)配置application的name属性。
● 用于在application启动的时候调用HMSAgent.init()接口初始化HMS Agent套件,开发者需自己实现应用的MyApplication类。
<application <!-- “xxx”用实际的应用包名替换--> android:name="xxx.xxx.xxx.MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
步骤 3 在application节点下增加activity。
● (必选)BridgeActivity定义了HMS Core SDK中一些跳转所需要的透明页面。
<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>
●(必选) AppUpdateActivity和PackageInstallActivity是应用自升级接口所需要使用的页面。
<activity android:name="com.huawei.updatesdk.service.otaupdate.AppUpdateActivity" android:configChanges="orientation|screenSize" android:exported="false" android:theme="@style/upsdkDlDialog" > <meta-data android:name="hwc-theme" android:value="androidhwext:style/Theme.Emui.Translucent.NoTitleBar" /> </activity>
<activity android:name="com.huawei.updatesdk.support.pm.PackageInstallerActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:theme="@style/upsdkDlDialog" > <meta-data android:name="hwc-theme" android:value="androidhwext:style/Theme.Emui.Translucent" /> </activity>
● (必选)解决HMS Core升级问题的透明界面。
<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>
● (必选) 处理拉起帐号登录界面,并处理登录结果的透明界面,由于支付必须集成帐号服务所以此步骤必选。
<activity android:name="com.huawei.android.hms.agent.hwid.HMSSignInAgentActivity" 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>
●(可选) 处理拉起支付界面,并处理支付结果的透明界面,开发者如果使用pay接口支付则必选。
<activity android:name="com.huawei.android.hms.agent.pay.HMSPayAgentActivity" 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>
步骤 4 (必选)在application节点下增加UpdateProvider。
用于HMS Core SDK引导升级HMS Core(APK),提供给系统安装器读取升级文件。
<provider android:name="com.huawei.hms.update.provider.UpdateProvider" <!--“xxx.xxx.xxx”用实际的应用包名替换--> android:authorities="xxx.xxx.xxx.hms.update.provider" android:exported="false" android:grantUriPermissions="true" > </provider>
步骤 5 (必选)在manifest节点下增加所需权限。
<!--HMS-SDK引导升级HMS Core(APK)功能,访问OTA服务器需要网络权限--> <uses-permission android:name="android.permission.INTERNET" /> <!--HMS-SDK引导升级HMS Core(APK)功能,保存下载的升级包需要SD卡写权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--检测网络状态--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!--检测wifi状态--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <!--为了获取用户手机的IMEI,用来唯一的标识用户。--> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!--如果是安卓8.0,应用编译配置的targetSdkVersion>=26,请务必添加以下权限 --> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
开发者编译APK时请不要混淆HMS Core SDK以及HMS Core SDK的相关资源文件,避免功能异常。
步骤 1 打开android工程的混淆配置文件。
步骤 2 加入排除hms的混淆配置。
-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.**{*;}
步骤 3 如果开发者使用了AndResGuard,需要在混淆配置文件中加入AndResGuard允许清单。
"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*"