目录

1. 接口功能

应用调用此接口可以查询用户当前的实名认证情况,如果用户未实名应用可以通过返回结果中的Intent对象跳转到实名认证页面。

2. 调用场景

如果游戏需要进行防沉迷处理,应用可以通过此接口与getCertificationInfo接口配合实现,具体的处理逻辑可参考游戏防沉迷。

3. 接口约束

● 本接口目前仅对中国大陆用户有效,非中国大陆用户将返回7006错误码。

● 只有2.6.3.300及以上版本的HMS SDK才支持本接口,2.6.3.300以下版本会直接返回907135002错误码。

4. 调用方法

  1. HMSAgent.Game.getCertificationIntent(GetCertificationIntentHandler handler);

5. 请求参数

参数名称必选(M)/可选(O)类型参数说明
handler
M
GetCertificationIntentHandler
接口调用后的回调结果,查询结束后通过此回调实例回调给应用。回调结果中包含的具体参数参见结果回调。

6. 结果回调

  1. public interface GetCertificationIntentHandler{
  2.        /**
  3.        * 结果回调
  4.        * @param resultCode 返回码
  5.        * @param result 查询结果信息
  6.        */
  7.       void onResult(int resultCode, CertificateIntentResult result);
  8. }
参数名称必选(M)/可选(O)类型参数说明
resultCode
M
int
回调结果中查询结果的返回码,应用可以根据返回码判断查询是否成功或失败后如何处理,具体返回码处理参见返回码。
result
M
包含实名认证查询结果的对象信息。
CertificateIntentResult
参数名称必选(M)/可选(O)类型获取方法参数说明
status
M
Status
result.getStatus()
包含查询结果业务返回码的对象,可通过result.getStatus().getStatusCode()方式获取。
当有业务返回码时,HMS SDK会将此值赋值给resultCode,具体请参见返回码中的业务错误码。
如果返回码为0,表示用户未实名。
intent
O
Intent
result.getCertificationIntent()
如果用户未实名,将返回此Intent对象,应用可以使用此对象调用startActivityForResult方法跳转到实名认证页面。

7. 返回码

类型返回码常量返回码值返回码说明处理建议
通用返回码
参见通用返回码。
业务返回码
GameStatusCodes.GAME_STATE_SUCCESS
0
用户未实名。
GameStatusCodes.GAME_STATE_ERROR
7001
游戏进程异常或HMS Core进程异常。
终止游戏进程或者HMS Core进程后重试。
GameStatusCodes.GAME_STATE_NO_SUPPORT
7006
当前区域不提供游戏服务。
您所在的地区目前还不支持接入华为游戏服务。如果是非华为手机出现此错误码,请尝试升级HMS Core(APK)至最新版本。
无
7016
已经实名。
无需处理。

8. 调用示例

  1. public void getCertificationIntent () {
  2.    HMSAgent.Game.getCertificationIntent(new GetCertificationIntentHandler() {
  3.        @Override
  4.        public void onResult(int resultCode, CertificateIntentResult result) {
  5.            if(resultCode == CommonCode.OK && result != null) {
  6.                int statusCode = result.getStatus().getStatusCode();
  7.                if(statusCode == GameStatusCodes.GAME_STATE_SUCCESS) {
  8.                    showLog("GetCtfIntent success, Start intent");
  9.                    /**
  10.                     * 拉起实名认证页面
  11.                                                 */
  12.                    Intent intent = result.getCertificationIntent();
  13.                    startActivityForResult(intent,1000);
  14.                }
  15.                else {
  16.                    showLog("getPlayerCertificationIntent onResult:" + statusCode);
  17.                }
  18.            }
  19.            else
  20.            {
  21.                showLog("getPlayerCertificationIntent resultCode:" + resultCode);
  22.            }
  23.        }
  24.    });
  25. }