使用SafetyNet Attestation API检查安全环境是不行的,因为它没有成功或失败回调的回调

时间:2017-11-02 05:47:20

标签: android google-api google-play-services safetynet

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

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

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

我因网络错误无效而收到失败回调。有人可以对此有所了解吗?

但是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 已被弃用。

1 个答案:

答案 0 :(得分:1)

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

  
      
  • 转到Google API控制台中的“库”页面。
  •   
  • 搜索Android设备验证API。找到API后,单击它。 Android设备验证API信息中心   屏幕出现。
  •   
  • 如果尚未启用API,请单击“启用”。
  •   
  • 如果出现“创建凭据”按钮,请单击它以生成API密钥。否则,请单击“所有API凭据”下拉列表   并选择与项目关联的API密钥   Android设备验证API已启用。
  •   
  • 在左侧边栏中,单击“凭据”。复制出现的API密钥。
  •