#android #android-8.0-oreo #autofill #google-smartlockpasswords
Вопрос:
Я интегрирую google smart lock в свое приложение для Android, но на некоторых устройствах я получаю эту ошибку при попытке сохранить учетные данные в Google. Я использую следующий код для сохранения учетных данных —
Credential credential = new Credential.Builder(email)
.setPassword(password)
.build();
saveCredentials(credential);
После поиска в Google этого решения выяснилось, что для сохранения пароля необходимо отключить функцию автоматического заполнения в приложении.
Попробуйте 1 — Поместите следующий код в действие для фиксации автозаполнения в определенном действии и отключите автозаполнение. Но это не работает.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
AutofillManager autofillManager = getSystemService(AutofillManager.class);
autofillManager.commit();
getWindow()
.getDecorView()
.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
}
Попробуйте 2 — Поместите следующее в свойства в EditText
android:longClickable="false"
longClickable должен остановить автозаполнение, но он не работает.
android:importantForAutofill="no"
Также попробуйте, importantForAutoFill
но это тоже не работает.
Ответ №1:
Я удалил весь код для ручного сохранения и просто добавил android:autofillHints="username"
поле для входа и поле android:autofillHints="password"
для пароля в форме входа. Диалоговое окно сохранения пароля появляется все так же, благодаря сервису автозаполнения Android.