为什么Google应用在非密码输入字段中有TYPE_TEXT_VARIATION_PASSWORD

时间:2018-03-21 04:22:02

标签: android autofill android-autofill-manager

我的应用提供Android Oreo自动填充服务。它试图通过使用自动填充提示来检测潜在的凭证表单,或者如果这些提示不存在(大多数当前应用程序都是这种情况),则可以通过其他启发式方法来检测。

主要的启发式方法是检测密码字段,我目前通过查看InputType返回的getInputType()来检查密码字段,请参阅https://developer.android.com/reference/android/app/assist/AssistStructure.ViewNode.html#getInputType()

现在用户已经报告我的应用程序试图填写Google翻译应用程序的翻译字段(我将原始语言设置为英语时可以重现)甚至是电话拨号程序(我可以在Google Pixel手机上重现)使用Android 8.1.0)。在这两种情况下,InputType都设置了标志TYPE_TEXT_VARIATION_PASSWORD。但是,这些字段都没有显示为密码(带星号),所以我想知道我对这种输入类型的理解是否不正确?为什么Google会将此标志添加到输入类型?我该如何检查"这是一个密码字段"?

1 个答案:

答案 0 :(得分:0)

View的 inputType 独立于视图的 autofillHints - 您可以使用它来帮助您的启发式,但您不能假设每个字段都有密码变体的inputType 具有作为密码的逻辑含义。