12/12/2024 11:37:55

HMS(华为移动服务) 渠道说明

一、概述

HMS 即华为移动服务(Huawei Mobile Service)的简称。

HMS中,华为账号为开发者提供了简单、安全的登录授权功能,方便用户快捷登录。用户不必输入账号、密码和繁琐验证,就可以通过“华为账号登录”快速登录,即刻使用开发者的 app。

二、开发者平台配置

华为开发者平台的配置流程如下:

1.注册成为开发者

在开发应用前需要在 华为开发者联盟 网站上注册成为开发者并完成实名认证,具体方法可参考账号 账号注册认证

2.创建应用

参见AppGallery Connect帮助中心的 创建应用 章节创建应用,特殊配置如下:

  • “软件包类型”:选择“APK(Android应用)”。
  • “支持设备”:选择“手机”。
  • “应用分类”:选择“应用”或“游戏”。

3.生成签名证书指纹

签名证书指纹用于在通过华为HMS SDK调用HMS Core(APK)时,校验应用的真实性。开发者在使用HMS Core(APK)前必须将签名证书指纹配置到华为开发者联盟,在配置前需要根据签名证书在本地生成签名证书指纹。在申请前需要满足以下2个条件:

  • 已创建应用程序的签名证书,签名证书创建属于通用技术,此处不详细描述。
  • 当前开发的PC已经安装JDK(JDK 1.8 及以上)。

    然后通过如下命令查询签名证书的 SHA256 指纹:

    keytool -list -v -keystore <keystore-file>
    

4.配置签名证书指纹

1、登录 AppGallery Connect 网站,选择“我的应用”。

2、找到对应应用产品,选择并点击“Android应用”链接,进入应用开发页面。

3、在“SHA256证书指纹”配置栏,输入 生成签名证书指纹 章节中生成的SHA256指纹。

4、配置完成后,点击旁边的对勾按钮。

5.根据 开通服务 文档给应用打开 HuaweiAccount 服务开关

6.下载最新的 agconnect-services.json 配置文件,备用

三、工程配置

3.1 Android 工程通用配置

  • 权限配置,在 AndroidManifest.xml 中新增网络访问权限

    <uses-permission android:name="android.permission.INTERNET"/>
    
  • 在 MSDKConfig.ini 中新增如下配置,该配置用于标明是否使用游戏应用请求:

    游戏类应用设置为 1,非游戏类应用设置为 0

     [HMS 渠道配置]
     HMS_IS_GAME_APP = 1
    
  • Proguard 混淆配置:

    -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.**{*;}
    
  • 将下载好的 agconnect-services.json 配置文件放到如下路径引入到工程中

    • Unity - {Unity工程根目录}/Assets/StreamingAssets/agconnect-services.json
    • UnrealEngine - {UnrealEngine工程根目录}/Source/ClientUETest/Resources/agconnect-services.json

四、功能说明

4.1 登录功能

  • HMS 登录要求用户手机上有华为移动服务,如果没有则会提示需要安装,错误码为15。

五、常见问题

5.1 在 UE4.23 及以上版本,编译 Android APK 报 minSdkVersion 设置过小的问题

  1. MSDKHMS 的 AndroidManifest.xml 文件已经添加了如下配置来解决这个问题
     <uses-sdk tools:overrideLibrary="com.huawei.hmf.tasks,
                                      com.huawei.android.hms.hwid,
                                      com.huawei.android.hms.base,
                                      com.huawei.hms.base.availableupdate,
                                      com.huawei.hms.stats,
                                      com.huawei.hms.base.ui,
                                      com.huawei.hms.base.device,
                                      com.huawei.hms.log,
                                      com.huawei.agconnect.core" />
    
  2. 但是在 UE4.23 上这个配置未被识别,游戏可以在项目的根 AndroidManifest.xml 或者 APL.xml 文件中去手动添加配置来解决,APL 文件参考示例(以下配置包含了XG华为厂商推送的依赖):
    <androidManifestUpdates>
       <addElements tag="manifest">
             <uses-sdk tools:overrideLibrary="com.huawei.hmf.tasks,com.huawei.android.hms.hwid,com.huawei.android.hms.base,com.huawei.hms.base.availableupdate,com.huawei.hms.stats,com.huawei.hms.base.ui,com.huawei.hms.base.device,com.huawei.hms.log,com.huawei.agconnect.core,com.huawei.android.hms.push,com.huawei.android.hms.openid" tools:ignore="MultipleUsesSdk" xmlns:tools="http://schemas.android.com/tools"/>
       </addElements>
    </androidManifestUpdates>
    



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""