Status Update
Comments
ba...@google.com <ba...@google.com>
ba...@google.com <ba...@google.com> #2
Thank you for reporting this issue. We have shared this with our product and engineering team and will update this issue with more information as it becomes available.
ba...@google.com <ba...@google.com> #3
Thanks for submitting this feedback.
This behavior is working as intended on Android 14, as we updated the behavior of “autofill importance”. In Android 14+, Views where Views#isImportantForAutofill is no or noExcludeDescendants will typically trigger autofill when focused and are always included in the FillRequest data, and autofill providers will be able to show suggestions when relevant.
The Android Autofill team is constantly looking for ways to improve the user experience. With this change, we expect users will be able to use autofill more often when they need it. Additional details can be found in the documentation.
wi...@gmail.com <wi...@gmail.com> #4
It is not developer friendly to do such changes in the background.
ng...@nab.com.au <ng...@nab.com.au> #5
Do we have the official alternative way similar to "importantForAutofill" is no or noExcludeDescendants ? In order to in Android 14 below we can tell the view isn't important for autofill ?
Or how we can tell that the view isn't important for autofill in Android 14 ?
Thank you everyone in advance for your feedback and information.
jj...@gmail.com <jj...@gmail.com> #6
It weird that how the team decides that from Android 14 above to have a different behavior and left developer struggling here and there.
ba...@google.com <ba...@google.com> #7
You can continue to use 'importantForAutofill=no' (or noExcludeDescendants) to give the hint to the autofill provider that this field is not important for autofill.
cr...@gmail.com <cr...@gmail.com> #8
Frankly, it's disappointing that this change was made. The whole point of the importantForAutofill
API is that devs (who know their scenario better than anyone else) can indicate that the system autofill service shouldn't be involved, and if a developer deliberately uses that API it should be respected.
You can continue to use 'importantForAutofill=no' (or noExcludeDescendants) to give the hint to the autofill provider that this field is not important for autofill.
You can provide that hint, sure. But if Google Password Manager itself doesn't bother to respect it, what's the point?
For anyone else struggling with this, I've found I can prevent the undesirable "do you want to save" prompt from the system autofill service with the following (called at an appropriate time when exiting your fragment/activity):
context?.let {
it.getSystemService(AutofillManager::class.java)?.cancel()
}
Description
Yes
Which Android Developer Preview build are you using?
UPB1.230309.017
Is this a regression from Android 13 to 14?
Yes
What device are you using?
Pixel 6a
I'm Android developer. I have several EditText fields of password type in my apps.
<EditText
android:id="@+id/etPassword"
android:importantForAutofill="no"
android:inputType="textPassword" />
Even though the "importantForAutofill" attribute is set to "no", the "Passwords" item is displayed. Please see the attached screenshot.
Please fix this. Bad user experience.
Thank you.