我以为我已经在我的应用程序中正确设置了autofillHints,但是最近我注意到了一些奇怪的事情。登录屏幕有两个字段:电子邮件地址和密码。如果我在密码字段中点击,将出现自动填充提示(我正在使用LastPass)。如果我选择一个帐户,它将填写密码,但不会填写电子邮件地址。密码字段更改为彩色,以表示它已使用自动填充功能,但未更改电子邮件地址字段。
我本可以发誓过去它可以正常工作,但是也许我误会了。我尝试设置android:importantForAutofill="yes"
,但这没什么区别。我尝试在代码中设置emailEditText.setAutofillHints(View.AUTOFILL_HINT_EMAIL_ADDRESS)
而不是在XML中设置android:autofillHints="emailAddress"
,但这并没有改变。
我应该能够在“电子邮件”或“密码”字段中点击并出现自动填充提示。两个字段都应更改颜色。两个字段都应填写。
有趣的是,如果我将电子邮件字段的android:autofillHints
属性更改为password
,它的确会填写。使用密码,当然不是电子邮件。但是至少自动填充服务正在做某事。
答案 0 :(得分:1)
我完全迷失了,直到偶然发现:
您可能会遇到的一个问题是,并非所有自动填充服务都 能够填充相同类型的内容。 Google自动填充时 服务可以填写凭据,地址,电话号码,信用卡 信息等等,Dashlane仅支持凭据(当时 撰写本文)。 来自https://medium.com/@bherbst/getting-androids-autofill-to-work-for-you-21435debea1
这让我开始思考。也许未将LastPass设置为填写所有字段。也许它将电子邮件地址视为通用表单字段(例如电话号码),而不是登录名的一部分。也许它期待其他东西。
我再次查看了提示类型。这次,我尝试了android:autofillHints="username"
,它运行良好。对于登录字段,username
是正确的提示类型,而不是emailAddress
,即使它是电子邮件地址。
希望这可以使其他人摆脱我忍受的麻烦!