Автозаполнение Android: почему состояние клиента возвращает значение null?
Я пытаюсь создать службу автозаполнения, которая будет обрабатывать разделенные страницы входа, и я столкнулся с запутанной ошибкой. Первая часть кода выполняется просто отлично, поэтому состояние клиента должно быть установлено, но затем я получаю сообщение об ошибке «request.getClientState() не должно быть нулевым». Поскольку это служба автозаполнения, она запускается дважды, один раз на странице имени пользователя, а затем снова на странице пароля. Теория заключается в том, что при запуске 1 я обнаруживаю поле имени пользователя и сохраняю AutofillID с помощью .setClientState(), а затем при запуске 2 я получаю доступ к этому AutofillID с помощью .getClientState() на странице пароля и передаю оба в onSaveRequest(). Я не уверен, почему .getClientState() возвращает значение null
Блок кода, который выполняет:
val clientState: Bundle = Bundle()
val responseBuilder = FillResponse.Builder()
clientState.putParcelable("usernameID", usernameID)
responseBuilder
.setClientState(clientState)
callback.onSuccess(
responseBuilder
.build())
Блок кода, который не выполняется:
val clientState: Bundle = request.getClientState()
Ошибка:
java.lang.IllegalStateException: request.getClientState() must not be null