Android 一键登录:无法显示密码保存对话框

问题描述

我正在尝试实施 Android 一键登录,但无法在此处显示此对话框:

Password Save Dialog

我一直收到消息:com.google.android.gms.common.api.ApiException: 16: Skipping password saving since the user is likely prompted with Android Autofill.

我该如何解决这个问题?

代码

private fun saveCredentials(email: String,password: String) {
    val signInPassword = SignInPassword(email,password)
    val savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build()

    // Show the password save dialog
    Identity.getCredentialSavingClient(this)
        .savePassword(savePasswordRequest)
        .addOnFailureListener {e ->
            Log.d(TAG,Log.getStackTraceString(e))
        }
        .addOnSuccessListener { result ->
            startIntentSenderForResult(
                result.pendingIntent.intentSender,REQUEST_CODE_SAVE_CREDENTIALS,null,// fillInIntent
                0,// flagsMask
                0,// flagsValues
                0,// extraFlags
                null)   // options
        }
}

文档:https://developers.google.com/identity/one-tap/android/save-passwords

解决方法

我发现只有当您关闭手机上的自动填充服务时,“一键登录”中的保存密码对话框才会显示。您可以通过转到 Settings > Languages & input > Advanced > Autofill Service 来执行此操作。

如果自动填充开启,您将从自动填充服务中获得保存密码对话框,与 One Tap 库提供的对话框相比,该对话框看起来有点过时。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...