我一直在尝试让 Google 的 Smart Lock 在我拥有的两个应用程序之间工作(不幸的是使用不同的密钥库),但没有任何运气。
在 Smart Lock 中为一个应用程序 ( APP 1 ) 保存密码很简单,可以执行以下操作:
Credential credential = new Credential.Builder(email)
.setPassword(password)
.build();
Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(...
但是,当我尝试CredentialRequest
在APP 2中制作 a 时,它无法读取从APP 1保存的相同凭据。我尝试将accountType
它们设置为相同的标识符,例如:
Credential credential = new Credential.Builder(email)
.setPassword(password)
.setAccountType(ACCOUNT_TYPE)
.build();
Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(...
...
CredentialRequest request = new CredentialRequest.Builder()
.setAccountTypes(ACCOUNT_TYPE)
.build();
Auth.CredentialsApi.request(mCredentialsApiClient, request).setResultCallback(...
但是我得到一个例外,说明您不能在同一个凭据上同时设置password
和accountType
(这与文档所说的相符)。
有人在两个应用程序之间尝试过类似的东西吗?我应该注意,目前我无法将应用程序中的凭据与我的网站登录相关联,因此无法使用该Digital Asset Links
机制。