Google智能锁在应用程序中显示我所有的电话帐户,而不是以前使用的帐户

时间:2019-05-10 15:55:24

标签: android google-smartlockpasswords android-autofill-manager

我正在开发一个应用,并且已经实现了智能锁。

问题在于,首先,我的手机中有多个Google帐户,当我按登录时,会出现一个智能锁定模式,说:。继续..然后,我的所有帐户列表都会出现(即使我没有不要在我的应用程序或任何其他应用程序中使用这些帐户,例如,我专门有一个用于Google日历的帐户,它显示),最后我什么都不按。然后输入凭据,它们就被正确保存了。

此后,一切都按预期工作,这意味着在关闭应用程序并重新打开后,智能锁正确地自动完成了凭据,并且我正确输入了。

我想知道我想念的是什么,如果我输入来发现它们只是显示我以前登录的帐户,而不是全部。

我发现了一些额外的信息,但显然没有有效的答案。

Smart Lock multi account resolution always showing up

Smart Lock shows accounts not from my app

以防万一,问题仍然不清楚。如何在我的域或应用程序中过滤以前使用的帐户?或者如何删除该模式(现在,它的作用就像自动填充程序,以防显示的任何电子邮件与您要查找的电子邮件匹配。

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是这里

https://developers.google.com/identity/smartlock-passwords/android/associate-apps-and-sites

添加该json文件和应用程序,您将被设置

答案 1 :(得分:0)

问题发布已经很长时间了,但是为了文档起见,我还是要回答这个问题。

当您请求凭据但用户之前没有保存任何凭据时,您将收到类型为ResolvableApiException和状态代码为SIGN_IN_REQUIRED的错误。如果您尝试通过调用startResolutionForResult()来解决该问题,则Google SDK将显示一个对话框,其中包含一些不包含密码的不相关帐户。这是使用Hint Picker功能时出现的对话框。从文档中来看不是很明显,但这是我在手动测试后看到的。

为避免这种情况,必须在请求解决方案之前检查错误代码是否恰好RESOLUTION_REQUIRED

client.request(credentialRequest)
  .addOnSuccessListener { response ->
    // ...
  }
  .addOnFailureListener { exception ->
    if (exception is ResolvableApiException && exception.statusCode == RESOLUTION_REQUIRED) {
      exception.startResolutionForResult(activity, REQUEST_CODE)
    }