我的应用程序提供Android Oreo自动填充服务 . 它试图通过使用自动填充提示来检测潜在的凭证表单,或者如果不存在这些表单(大多数当前应用程序都是如此),则通过其他启发式检测 .
主要的启发式方法是检测密码字段,我目前通过检查 getInputType()
返回的 InputType
来查看密码字段,参见https://developer.android.com/reference/android/app/assist/AssistStructure.ViewNode.html#getInputType()
现在用户已经报告我的应用程序试图填写Google翻译应用程序的翻译字段(当我将源语言设置为英语时我可以重现)甚至是电话拨号器(我可以使用Android 8.1在Google Pixel手机上重现) .0) . 在这两种情况下,InputType都设置了标志 TYPE_TEXT_VARIATION_PASSWORD
. 但是,这些字段都不显示为密码(带星号),所以我想知道我对这种输入类型的理解是否不正确?为什么Google会将此标志添加到输入类型?我应该如何检查"is this a password field"?
1 回答
View的inputType独立于视图的autofillHints - 您可以使用它来帮助您的启发式,但您不能假设具有inputType密码变体的每个字段都具有作为密码的逻辑含义 .