应用调用此接口可以查询用户当前的实名认证情况,如果用户未实名应用可以通过返回结果中的Intent对象跳转到实名认证页面。
如果游戏需要进行防沉迷处理,应用可以通过此接口与getCertificationInfo接口配合实现,具体的处理逻辑可参考游戏防沉迷。
● 只有2.6.3.300及以上版本的HMS SDK才支持本接口,2.6.3.300以下版本会直接返回907135002错误码。
- HMSAgent.Game.getCertificationIntent(GetCertificationIntentHandler handler);
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
handler | M | 接口调用后的回调结果,查询结束后通过此回调实例回调给应用。回调结果中包含的具体参数参见结果回调。 |
- public interface GetCertificationIntentHandler{
- /**
- * 结果回调
- * @param resultCode 返回码
- * @param result 查询结果信息
- */
- void onResult(int resultCode, CertificateIntentResult result);
- }
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
resultCode | M | int | 回调结果中查询结果的返回码,应用可以根据返回码判断查询是否成功或失败后如何处理,具体返回码处理参见返回码。 |
result | M | 包含实名认证查询结果的对象信息。 |
| 参数名称 | 必选(M)/可选(O) | 类型 | 获取方法 | 参数说明 |
status | M | Status | result.getStatus() | 包含查询结果业务返回码的对象,可通过result.getStatus().getStatusCode()方式获取。 当有业务返回码时,HMS SDK会将此值赋值给resultCode,具体请参见返回码中的业务错误码。 如果返回码为0,表示用户未实名。 |
intent | O | Intent | result.getCertificationIntent() | 如果用户未实名,将返回此Intent对象,应用可以使用此对象调用startActivityForResult方法跳转到实名认证页面。 |
| 类型 | 返回码常量 | 返回码值 | 返回码说明 | 处理建议 |
通用返回码 | 参见通用返回码。 | |||
业务返回码 | GameStatusCodes.GAME_STATE_SUCCESS | 0 | 用户未实名。 | |
GameStatusCodes.GAME_STATE_ERROR | 7001 | 游戏进程异常或HMS Core进程异常。 | 终止游戏进程或者HMS Core进程后重试。 | |
GameStatusCodes.GAME_STATE_NO_SUPPORT | 7006 | 当前区域不提供游戏服务。 | 您所在的地区目前还不支持接入华为游戏服务。如果是非华为手机出现此错误码,请尝试升级HMS Core(APK)至最新版本。 | |
无 | 7016 | 已经实名。 | 无需处理。 | |
- public void getCertificationIntent () {
- HMSAgent.Game.getCertificationIntent(new GetCertificationIntentHandler() {
- @Override
- public void onResult(int resultCode, CertificateIntentResult result) {
- if(resultCode == CommonCode.OK && result != null) {
- int statusCode = result.getStatus().getStatusCode();
- if(statusCode == GameStatusCodes.GAME_STATE_SUCCESS) {
- showLog("GetCtfIntent success, Start intent");
- /**
- * 拉起实名认证页面
- */
- Intent intent = result.getCertificationIntent();
- startActivityForResult(intent,1000);
- }
- else {
- showLog("getPlayerCertificationIntent onResult:" + statusCode);
- }
- }
- else
- {
- showLog("getPlayerCertificationIntent resultCode:" + resultCode);
- }
- }
- });
- }