Почему в приложениях Google есть поля TYPE_TEXT_VARIATION_PASSWORD в полях ввода без пароля
Мое приложение предоставляет службу автоматического заполнения Android Oreo. Он пытается обнаружить потенциальные формы учетных данных, либо с помощью подсказок автозаполнения, либо, если их нет (что имеет место для большинства современных приложений), с помощью других эвристик.
Основной эвристикой является обнаружение полей пароля, что я сейчас и делаю, проверив InputType
вернулся getInputType()
см. https://developer.android.com/reference/android/app/assist/AssistStructure.ViewNode.html
Теперь пользователи сообщают, что мое приложение пытается заполнить поле перевода приложения Google translate (которое я могу воспроизвести, когда я установил язык происхождения на английский), и даже номеронабиратель телефона (который я могу воспроизвести на телефоне Google Pixel с Android 8.1 +0,0). В обоих случаях InputType имеет флаг TYPE_TEXT_VARIATION_PASSWORD
задавать. Однако ни одно из этих полей не отображается в виде пароля (со звездочками), поэтому мне интересно, неверно ли мое понимание этого типа ввода? Зачем Google добавить этот флаг в тип ввода? Как я должен проверить "это поле пароля"?
1 ответ
InputType представления не зависит от autofillHints представления - вы можете использовать его для помощи в эвристике, но вы не можете предполагать, что каждое поле, имеющее inputType с изменением пароля, имеет логическое значение пароля.