san*_*nil 4 android google-api
我正在将我的应用程序从 Google play safety net api 迁移到 Integrity api,但从 api 收到以下错误-
com.google.android.play.core.integrity.IntegrityServiceException:-12:完整性 API 错误 (-12):未知的内部 Google 服务器错误。使用指数退避重试。如果始终失败,请考虑提交错误(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) {}
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢。
小智 11
我已经看到了这个问题,对我来说,解决方案是将云项目编号包含到完整性请求中:
IntegrityTokenRequest.builder()
.setCloudProjectNumber([YOUR_CLOUD_PROJECT_NUMBER])
.setNonce(nonce)
.build()
Run Code Online (Sandbox Code Playgroud)
我构建了一个 SDK,因此这是唯一可用的解决方案,但是如果您有通过 Play 商店分发的应用程序,则还有另一种选择:
在 Play 管理中心中,导航至左侧菜单的“发布”部分。转至设置 > 应用程序完整性。选择 Integrity API 选项卡开始。
| 归档时间: |
|
| 查看次数: |
10305 次 |
| 最近记录: |