Google play完整性api问题



我正在将我的应用程序从Google play安全网api迁移到Integrity api,但从api获得以下错误-

com.google.android.play.core.integrity.IntegrityServiceException: -12: Integrity API error(-12):未知的内部Google服务器错误。用指数回退来重试。如果总是失败,可以考虑提交bug(https://developer.android.com/reference/com/google/android/play/core/integrity/model/IntegrityErrorCode.html # GOOGLE_SERVER_UNAVAILABLE)。

下面是我的代码示例-
String str = "MTY1Mzk3NTAxMjYwNjE2NTM5NzUwMTI2MDc=";
byte[] strBytes = android.util.Base64.decode(str, android.util.Base64.DEFAULT);
byte[] encoded = android.util.Base64.encode(
strBytes, android.util.Base64.URL_SAFE | android.util.Base64.NO_PADDING | android.util.Base64.NO_WRAP);
String nonce =  new String(encoded);
IntegrityManager integrityManager = 
IntegrityManagerFactory.create(getApplicationContext());
Task<IntegrityTokenResponse> integrityTokenResponse =
integrityManager
.requestIntegrityToken(
IntegrityTokenRequest.builder().setNonce(nonce).build());
integrityTokenResponse.addOnCompleteListener(new OnCompleteListener<IntegrityTokenResponse>() {
@Override
public void onComplete(@NonNull Task<IntegrityTokenResponse> task) {}
});
integrityTokenResponse.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {}
});

任何帮助将不胜感激。谢谢你。

我已经看到了这个问题,对我来说,解决方案是将Cloud项目编号包含到完整性请求中:

IntegrityTokenRequest.builder()
.setCloudProjectNumber([YOUR_CLOUD_PROJECT_NUMBER])
.setNonce(nonce)
.build()

我构建了一个SDK,所以这是唯一可用的解决方案,但是如果你有一个通过Play Store分发的应用程序,还有一个替代方案:

在Play Console中,导航到左侧菜单的Release部分。进入Setup>应用程序的完整性。选择Integrity API选项卡开始。

我迁移也是为了安全网检查。实现如上位接收异常如下W/系统。err: com.google.android.play.core.integrity.IntegrityServiceException: -8:完整性API错误(-8):调用应用程序向API发出太多请求,因此被限制。W/系统。错误:以指数级后退重试。W/系统。错:# TOO_MANY_REQUESTS (https://developer.android.com/reference/com/google/android/play/core/integrity/model/IntegrityErrorCode.html)。W/系统。(com.google.android.play: integrity@1.0.0:5)W/系统。(com.google.android.play: integrity@1.0.0:2)W/系统。(com.google.android.play: integrity@1.0.0:3)W/系统。error: at android.os.Binder.execTransactInternal(Binder.java:1187)W/系统。err: at android.os. binder . exectransaction (Binder.java:1146)

最新更新