3

对于我正在使用的android中的安全环境检查

https://developer.android.com/training/safetynet/attestation.html

SafetyNet.getClient(this).attest(nonce, API_KEY)
   .addOnSuccessListener(this,successListner)
   .addOnFailureListener(this,failureListener)

为此,我收到网络错误 null的故障回调。任何人都可以对此有所了解吗?

但是https://medium.com/@hargoyal/secure-android-app-with-safetynet-8e367a1c8ad0

SafetyNet.SafetyNetApi.attest(mGoogleApiClient, nonce)
                .setResultCallback(new ResultCallback<SafetyNetApi.AttestationResult>() {
                    @Override
                    public void onResult(SafetyNetApi.AttestationResult result) {
                        Status status = result.getStatus();
                        if (status.isSuccess()) {
                            decodeJws(result.getJwsResult());
                            // Indicates communication with the service was successful.
                            // Use result.getJwsResult() to get the result data.
                        } else {
                            // An error occurred while communicating with the service.
                        }
                    }
                });

这种方法有效,但不推荐使用SafetyNet.SafetyNetApi

4

1 回答 1

2

重新检查 API 密钥或像这里一样创建一个新的。我遇到了同样的问题,问题是我将密钥限制为错误的包名称。

  • 转到 Google API 控制台中的库页面。
  • 搜索 Android 设备验证 API。找到 API 后,单击它。将出现 Android 设备验证 API 仪表板屏幕。
  • 如果 API 尚未启用,请单击启用。
  • 如果出现创建凭据按钮,请单击它以生成 API 密钥。否则,单击所有 API 凭据下拉列表并选择与启用 Android 设备验证 API 的项目关联的 API 密钥。
  • 在左侧边栏中,单击凭据。复制出现的 API 密钥。
于 2017-11-22T21:44:11.180 回答