跨多个应用的​​Google Smart Lock

时间:2017-03-30 13:35:57

标签: android google-smartlockpasswords

我一直试图让Google的Smart Lock在我拥有的两个应用程序之间工作(不幸的是有不同的密钥库),但没有运气。

直接在智能锁中为一个应用程序( APP 1 )保存密码,执行以下操作:

Credential credential = new Credential.Builder(email)
            .setPassword(password)
            .build();
Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(...

但是,当我尝试在 APP 2 中设置CredentialRequest时,它无法读取从 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(...

但我得到一个例外,说明您无法在同一凭据上设置passwordaccountType(与文档所说的相符)。

有人试过两个应用程序之间类似的东西吗? 我应该注意,我目前无法将我的凭据与我的网站登录的应用程序联系起来,因此无法使用Digital Asset Links机制。

1 个答案:

答案 0 :(得分:3)

出于安全原因,digit asset linking是将多个应用程序与不同软件包名称相关联并签署证书以使用Smart Lock进行密码修复的唯一方法。

如果您尚未支持来自网站的凭据,则只需从数字资产链接文件中排除“网络”目标,并且只会在应用之间共享凭据(但您仍需要在某处托管文件并包含两个应用程序清单中的此文件的链接。)