android - 跨多个应用程序的 Google Smart Lock

标签 android google-smartlockpasswords

我一直在尝试让 Google 的智能锁在我拥有的两个应用程序之间工作(不幸的是使用不同的 keystore ),但没有任何运气。

在 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(与文档所述相符)。

有人在两个应用程序之间尝试过类似的操作吗? 我应该注意,我目前无法将应用程序中的凭据与我的网站登录绑定(bind)起来,因此无法使用数字 Assets 链接机制。

最佳答案

出于安全原因,digit asset linking是将多个应用程序与不同的包名称和签名证书关联起来以使用 Smart Lock 检索密码的唯一方法。

如果您尚不支持来自网站的凭据,则只需从数字 Assets 链接文件中排除“web”目标,并且凭据将仅在应用程序之间共享(但您仍然必须在某处托管该文件并包含两个应用程序 list 中都有指向此文件的链接)。

关于android - 跨多个应用程序的 Google Smart Lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43119518/

相关文章:

android - AudioManager 中的 setSpeakerphoneOn 不会更改 android 12 上的扬声器值,它始终保持为 false。为什么?

android - 在哪里存储密码?

android - 通过代码打开 'Smart Lock For Passwords'设置界面

java.lang.RuntimeException : Cannot make calls to a recycled instance!类型数组navadapter

Android Studio 未将应用安装到设备中

android - 动态壁纸兼容性问题

android - 从应用程序中清除所有 Smart Lock 密码凭据

google-signin - 谷歌智能锁与凭证管理 API

android - 在Firebase登录上实现Smart Lock密码