You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Play Integrity API异常中获取错误代码(非文本提取方式)

解决方案

Play Integrity API抛出的异常属于GoogleApiException类型,你可以将捕获到的Exception强制转换为该类型,直接获取官方定义的错误码,无需解析异常文本:

  1. 类型转换与错误码获取:将task.getException()转为GoogleApiException,调用getStatusCode()获取标准化错误码。
  2. 使用官方常量匹配:利用IntegrityStatusCodes类中定义的常量(如NONCE_TOO_SHORT)进行判断,避免硬编码错误数字,提升代码可读性和维护性。

修改后的异常处理代码示例:

if(!task.isSuccessful()) {
    Log.d(LOG_TAG, "!isSuccessful");
    
    Exception e = task.getException();
    if (e instanceof GoogleApiException) {
        GoogleApiException apiException = (GoogleApiException) e;
        int errorCode = apiException.getStatusCode();
        
        // 用官方常量判断错误类型
        switch (errorCode) {
            case IntegrityStatusCodes.NONCE_TOO_SHORT:
                Log.d(LOG_TAG, "无效nonce:长度过短");
                // 处理该错误逻辑
                break;
            case IntegrityStatusCodes.NONCE_TOO_LONG:
                Log.d(LOG_TAG, "无效nonce:长度过长");
                // 处理该错误逻辑
                break;
            // 其他需要处理的错误码...
            default:
                Log.d(LOG_TAG, "未知错误,错误码:" + errorCode);
        }
    } else {
        Log.d(LOG_TAG, "非API异常:" + e.getMessage());
    }
}

注意事项:

  • 需导入对应类:com.google.android.gms.common.api.GoogleApiException 和 com.google.android.play.core.integrity.IntegrityStatusCodes
  • 不同版本的Play Integrity SDK对错误常量的定义可能略有差异,请以你依赖的版本官方文档为准。

内容的提问来源于stack exchange,提问作者user2342558

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:22:37