使用safetynet认证API时,Android中出现ApiException,状态代码为7

nwlqm0z1  于 2023-10-14  发布在  Android
关注(0)|答案(4)|浏览(173)

Apiexception与状态代码7发生由于网络错误,但这似乎并不是问题,因为互联网在设备上工作正常.
代码片段-

SafetyNet.getClient(this).attest(nonce, API_KEY)
                .addOnSuccessListener(this,
                        new OnSuccessListener<SafetyNetApi.AttestationResponse>() {
                            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
                            @Override
                            public void onSuccess(SafetyNetApi.AttestationResponse response) {
                                mResult = response.getJwsResult();
                                Log.i(TAG, "safetynet result is" + mResult + "\n");
                                mainres = initialDataExtraction(response.getJwsResult());
                                Log.i(TAG, "Main result is" + mainres + "\n");
                            }
                        })
                .addOnFailureListener(this, new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        if (e instanceof ApiException) {
                            ApiException apiException = (ApiException) e;
                            int statuscode = apiException.getStatusCode();
                            Log.i(TAG,"EXCEPTION CODE: "+statuscode);
                        } else {
                            Log.d(TAG, "Error: " + e.getMessage());
                        }
                    }
                });
6jjcrrmo

6jjcrrmo1#

问题出在我的API密钥上。我使用的是同事的API密钥,该密钥受到限制。使用我自己的API密钥解决了这个问题。

hgc7kmma

hgc7kmma2#

我的问题是我从游戏机注册了SHA1,但在我的Android Studio中没有注册SHA1。

6yt4nkrj

6yt4nkrj3#

当超出Safetynet API配额时,我们会出现此错误。默认配额为每天10_000个请求,午夜重置。

a11xaf1n

a11xaf1n4#

com.google.android.gms:play-services-safetynet依赖于应用程序的构建降级。gradle从18.0.118.0.0为我修复了它。
仍然要仔细检查你的API密钥限制(SHA1,包名),因为如果它们有问题,它们也可能导致这个错误,但是降级API一个缺口为我修复了它。
此外,仔细检查您是否正确地从密钥文件中阅读APK密钥,尝试将API密钥作为String硬编码到类中,看看它是否有效,当然不要在生产代码中这样做,您必须在发布中隐藏API密钥。

相关问题