Сбой ввода в AutofillManager WebView на Android 8.1

У меня ошибка с менеджером автозаполнения, когда я фокусирую любой ввод - он выдает исключение:

W/System.err: java.lang.NullPointerException: activityToken
W/System.err: at android.os.Parcel.readException(Parcel.java:2011)
W/System.err: at android.os.Parcel.readException(Parcel.java:1951)
 at android.view.autofill.IAutoFillManager$Stub$Proxy.startSession(IAutoFillManager.java:397)
 at android.view.autofill.AutofillManager.startSessionLocked(AutofillManager.java:1012) W/System.err: at android.view.autofill.AutofillManager.notifyViewEntered(AutofillManager.java:734) android.view.autofill.AutofillManager.notifyViewEntered(AutofillManager.java:706)

Я смог это исправить, добавив следующий код в базу деятельности onCreate():

public static void preventViewAutoFill(@NonNull Window window) {
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
        final Method method;
        try {
            method = View.class.getMethod(AUTO_FILL_MANAGER_METHOD, Integer.TYPE);
        } catch (Exception ignore) {
            return;
        }
        if (method != null) {
            try {
                method.invoke(window.getDecorView(), IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
            } catch (Exception ignore) {
            }
        }
    }
}

Исправлена ​​проблема во всех представлениях, кроме ввода внутри WebView, У меня есть WebView с полями ввода, когда пользователь фокусируется на любом входе внутри WebView сбой приложения.

Есть ли способ исправить это на уровне приложения или на стороне WebView?

Приложение нацелено на 25 API, мин 16.

0 ответов

Другие вопросы по тегам