Что такое AllowedDataTypes для RemoteInput?
Там есть новая функция под названием setAllowDataType
на RemoteInput.Builder
в API 26. Для чего это используется? Я попробовал следующее:
val remoteInput = RemoteInput.Builder(KEY_TEXT_REPLY)
.setLabel("Image")
.setAllowFreeFormInput(false)
.setChoices(null)
.setAllowDataType("image/*", true)
.setAllowDataType("image/png", true)
.setAllowDataType("image/jpg", true)
.setAllowDataType("image/gif", true)
.build()
Который должен установить isDataOnly
в true
на RemoteInput
, но на телефоне появилось следующее уведомление. Нажав на Image
Кнопка ничего не делает. Для чего это? Я не могу найти какую-либо документацию, заметки о выпуске или руководства по этой функции.
Обновить
Похоже, что только типы данных отсутствуют в уведомлении, когда оно фактически публикуется. Просматривая код компоновщика, при добавлении Actions
для уведомления он использует уровень 24, который полностью удаляет типы данных: https://android.googlesource.com/platform/frameworks/support/+/oreo-release/compat/api26/android/support/v4/app/NotificationCompatApi26.java#108
Оригинальный вопрос остается в силе.
2 ответа
В документах говорится следующее:
Указывает, может ли пользователь указывать произвольные значения. Это позволяет вводить нетекстовые значения. Примеры использования - это вход, который хочет аудио или изображение.
Итак, я считаю, что если я правильно это читаю, функция setAllowDataType
заключается в добавлении допустимых типов в поле ввода. Так что, если пользователь хотел добавить гифки, изображения и т. Д., Они могли. По умолчанию я не верю, что пользователь может добавлять такие элементы.
На Android 12 теперь вы можете использовать
.setAllowDataType("image/*", true)
с
RemoteInput
чтобы принимать ответы на изображения с помощью функции ответа на уведомление.
Кнопки для выбора изображения нет, но многие клавиатуры предлагают функции для вставки стикеров или гифок прямо в уведомление.