16:跳过密码保存,因为可能会提示用户使用 Android Autofill

Posted

技术标签:

【中文标题】16:跳过密码保存,因为可能会提示用户使用 Android Autofill【英文标题】:16: Skipping password saving since the user is likely prompted with Android Autofill 【发布时间】:2021-03-01 12:27:33 【问题描述】:

我在我的 android 应用程序中集成了 google 智能锁,但在某些设备中,当我尝试将凭据保存到 google 时出现此错误。我正在使用以下代码来保存凭据 -

 Credential credential = new Credential.Builder(email)
                                       .setPassword(password)
                                       .build();
 saveCredentials(credential);

在谷歌上搜索此解决方案后发现需要在应用程序中禁用自动填充功能以保存密码。

尝试 1 - 将以下代码放入活动中以在特定活动中提交 autofillmager 并禁用自动填充。但它不起作用。

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 

    AutofillManager autofillManager = getSystemService(AutofillManager.class);
    autofillManager.commit();

    getWindow()
            .getDecorView()
            .setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
 

尝试 2 - 在 EditText 中的属性中添加以下内容

 android:longClickable="false"

longClickable 应该停止自动填充,但它不起作用。

 android:importantForAutofill="no"

也尝试使用importantForAutoFill,但它也不起作用。

【问题讨论】:

【参考方案1】:

我删除了所有手动保存的代码并添加了 android:autofillHints="username" 用于登录字段,android:autofillHints="password" 用于登录表单中的密码字段。多亏了 Android 的自动填充服务,密码保存对话框仍然显示。

【讨论】:

以上是关于16:跳过密码保存,因为可能会提示用户使用 Android Autofill的主要内容,如果未能解决你的问题,请参考以下文章

为什么git在使用http协议时跳过用户名和密码输入

如何用fidder跳过密码进行用户账号登陆

如何让浏览器提示保存密码?

linux 普通用户开机重启后跳过密码输入,怎么修改回来?

Chrome 62 的大坑:修改密码后始终使用保存的旧密码登录

Chrome - 您要保存此密码吗?提示获取不正确的值