禁用 Google 密码管理器列出 Android 中保存的密码?

Disable Google Password Manager list out saved passwords in Android?

我无法执行我的 android espresso 单元测试并且它失败了:

// (kotlin syntax)
closeSoftKeyboard()
onView(withId(R.id.et_login_mobile_number)).perform(TypeTextAction(invalidMobileNo))
closeSoftKeyboard()

androidx.test.espresso.InjectEventSecurityException: java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission.

我终于了解到:出现在 UI 上的任何意外动画 正在进行自动测试都可能会中断该过程。

所以我怀疑这是由于 Google 密码管理器 提示保存的密码列表不断弹出,可能是导致中断的原因。

我现在正在看的是:关闭 GOOGLE 密码管理器的方法,建议保存密码

我只找到

Manage offers to save passwords

并且无法关闭/禁用它



我最终从 Google 密码管理器中删除了所有保存的密码后,现在它出现了建议自动填充文本(请比较两个屏幕截图)

我已经包含如下属性,它仍然不会阻止自动填充到 Android 8 及更高版本的设备。

android:inputType="number|textNoSuggestions|textFilter"


我认为您应该尝试删除当前保存的密码并将此应用程序添加到拒绝的应用程序列表中。 这是该应用程序将没有任何自动填充选项,也不会显示弹出窗口。

如果这有帮助,请告诉我。祝你好运。

根据这个 Answer ,

android:importantForAutofill="no"

可以防止 默认自动填充 Google 密码管理器 来自 Android 8及以上。

在 onCreate 方法后插入下行:

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