某些设备上的OneTap凭据保存失败



尝试使用身份凭据服务保存密码时,某些设备出现问题。我们打这个电话:

Identity.getCredentialSavingClient(activity).savePassword(savePasswordRequest)

我们有一个onCompleteListener,它根本没有被解雇,失败似乎发生在Task中,并且从未进行过通信,导致我们的进程停滞。以下是设备上错误的堆栈:

2022-07-25 11:17:27.264 15235-15235/? D/BoundBrokerSvc: onBind: Intent { act=com.google.android.gms.auth.api.identity.service.credentialsaving.START dat=chimera-action:com.google.android.gms.auth.api.identity.service.credentialsaving.START cmp=com.google.android.gms/.chimera.GmsApiService }
2022-07-25 11:17:27.264 15235-15235/? D/BoundBrokerSvc: Loading bound service for intent: Intent { act=com.google.android.gms.auth.api.identity.service.credentialsaving.START dat=chimera-action:com.google.android.gms.auth.api.identity.service.credentialsaving.START cmp=com.google.android.gms/.chimera.GmsApiService }
2022-07-25 11:17:27.285 15235-15235/? D/BoundBrokerSvc: onBind: Intent { act=com.google.android.gms.chromesync.service.zeroparty.START dat=chimera-action:com.google.android.gms.chromesync.service.zeroparty.START cmp=com.google.android.gms/.chimera.GmsApiService }
2022-07-25 11:17:27.285 15235-15235/? D/BoundBrokerSvc: Loading bound service for intent: Intent { act=com.google.android.gms.chromesync.service.zeroparty.START dat=chimera-action:com.google.android.gms.chromesync.service.zeroparty.START cmp=com.google.android.gms/.chimera.GmsApiService }
2022-07-25 11:17:27.300 1813-1889/? D/CompatibilityInfo: mCompatibilityFlags - 0
2022-07-25 11:17:27.300 1813-1889/? D/CompatibilityInfo: applicationDensity - 280
2022-07-25 11:17:27.300 1813-1889/? D/CompatibilityInfo: applicationScale - 1.0
2022-07-25 11:17:27.312 32339-32355/? E/AuthPII: [GoogleAccountDataServiceImpl] getToken() -> BAD_AUTHENTICATION. App: com.google.android.gms, Service: oauth2:https://www.googleapis.com/auth/plus.me
wno: Long live credential not available.
at jel.a(:com.google.android.gms@222615037@22.26.15 (150400-461192076):8)
at jeq.g(:com.google.android.gms@222615037@22.26.15 (150400-461192076):1)
at jeq.e(:com.google.android.gms@222615037@22.26.15 (150400-461192076):3)
at jcy.m(:com.google.android.gms@222615037@22.26.15 (150400-461192076):108)
12:21
at jbx.a(:com.google.android.gms@222615037@22.26.15 (150400-461192076):8)
at eys.p(:com.google.android.gms@222615037@22.26.15 (150400-461192076):9)
at eys.e(:com.google.android.gms@222615037@22.26.15 (150400-461192076):68)
at eys.h(:com.google.android.gms@222615037@22.26.15 (150400-461192076):0)
at eys.el(:com.google.android.gms@222615037@22.26.15 (150400-461192076):6)
at ewl.onTransact(:com.google.android.gms@222615037@22.26.15 (150400-461192076):5)
at android.os.Binder.transact(Binder.java:1043)
at fch.onTransact(:com.google.android.gms@222615037@22.26.15 (150400-461192076):2)
at android.os.Binder.transact(Binder.java:1043)
at ahmp.onTransact(:com.google.android.gms@222615037@22.26.15 (150400-461192076):17)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)
2022-07-25 11:17:27.312 32339-32355/? E/AuthPII: Message is Long live credential not available.
wno: Long live credential not available.
at jel.a(:com.google.android.gms@222615037@22.26.15 (150400-461192076):8)
at jeq.g(:com.google.android.gms@222615037@22.26.15 (150400-461192076):1)
at jeq.e(:com.google.android.gms@222615037@22.26.15 (150400-461192076):3)
at jcy.m(:com.google.android.gms@222615037@22.26.15 (150400-461192076):108)
at jbx.a(:com.google.android.gms@222615037@22.26.15 (150400-461192076):8)
at eys.p(:com.google.android.gms@222615037@22.26.15 (150400-461192076):9)
at eys.e(:com.google.android.gms@222615037@22.26.15 (150400-461192076):68)
at eys.h(:com.google.android.gms@222615037@22.26.15 (150400-461192076):0)
at eys.el(:com.google.android.gms@222615037@22.26.15 (150400-461192076):6)
at ewl.onTransact(:com.google.android.gms@222615037@22.26.15 (150400-461192076):5)
at android.os.Binder.transact(Binder.java:1043)
at fch.onTransact(:com.google.android.gms@222615037@22.26.15 (150400-461192076):2)
at android.os.Binder.transact(Binder.java:1043)
at ahmp.onTransact(:com.google.android.gms@222615037@22.26.15 (150400-461192076):17)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)
2022-07-25 11:17:27.312 32339-32355/? I/Auth: [AccountIdManager] Token response failed with status=BadAuthentication [CONTEXT service_id=153 ]
2022-07-25 11:17:27.313 32339-32355/? W/Auth: [GetToken] Failed to get account ID
2022-07-25 11:17:27.314 15235-1472/? W/Auth: [GoogleAuthUtil] isUserRecoverableError status: BAD_AUTHENTICATION
2022-07-25 11:17:27.327 1813-3803/? D/CompatibilityInfo: mCompatibilityFlags - 0
2022-07-25 11:17:27.327 1813-3803/? D/CompatibilityInfo: applicationDensity - 280
2022-07-25 11:17:27.327 1813-3803/? D/CompatibilityInfo: applicationScale - 1.0
2022-07-25 11:17:27.410 32339-32427/? W/Auth: [GetTokenResponse] No token found in response, service=chromesync [CONTEXT service_id=153 ]
2022-07-25 11:17:27.410 32339-32427/? W/Auth: [GetToken] GetToken failed with status code: BadRequest
2022-07-25 11:17:27.411 15235-1472/? W/AsyncOperation: operation=GetState, opStatusCode=11006 [CONTEXT service_id=80 ]
OperationException[Status{statusCode=Error accessing account in operation GetState, resolution=null}] 

它不会发生在我们的大多数设备上,但它确实发生在多种设备类型(三星/像素(和多个版本的Android上。似乎没有太多关于这类问题的文档,但我试图在一台设备上复制它,该设备通过添加多个谷歌帐户、删除所有帐户、打开和关闭自动填充、拒绝智能锁来工作,所有这些方式都只会导致实际错误返回给完整的侦听器,而不是这个在任务中死亡的错误。有什么想法吗?

public CredentialsOptions.Builder forceEnableSaveDialog ()

也就是说:在Android O及以上设备上,可能不会显示保存确认对话框,而是显示活动的自动填充服务的保存对话框。设置此选项将覆盖此选项,并将显示Auth.Api.Credentials保存确认,而与Android自动填充服务无关

https://developers.google.com/android/reference/com/google/android/gms/auth/api/credentials/CredentialsOptions.Builder

最新更新