Уведомления предоставляют водителям краткую и своевременную информацию о событиях в вашем приложении, когда оно не используется. Уведомления могут отображаться в Центре уведомлений , а некоторые — в виде всплывающих уведомлений на экране. Для создания уведомлений в Android Automotive OS используется тот же API NotificationBuilder , что и для других устройств. Однако, чтобы обеспечить безопасность водителей и свести к минимуму отвлечение внимания, некоторые методы и классы API ограничены или работают по-другому.
Чем отличаются уведомления в автомобилях?
Для создания безопасной и свободной от отвлекающих факторов обстановки за рулем, уведомления в операционной системе Android Automotive отличаются от уведомлений на других устройствах следующим образом:
- Упрощенное взаимодействие с пользователем
- Ограничения пользовательского интерфейса в зависимости от состояния привода.
Упрощенное взаимодействие с пользователем
Чтобы водители могли сосредоточиться на дороге, уведомления в автомобиле имеют упрощенную модель взаимодействия с пользователем и включают следующие функции:
- Отсутствие сложных элементов управления
- Уведомления не позволяют осуществлять сложные элементы управления, такие как разворачивание уведомления касанием, длительное нажатие на уведомление для получения дополнительных параметров или использование элементов управления на основе жестов смахивания.
- Звуки уведомлений
- Звуковой сигнал воспроизводится только в том случае, если уведомление вызывает всплывающее сообщение.
Операционная система Android Automotive автоматически добавляет кнопки «Воспроизвести» и «Отключить звук» ко всем уведомлениям, совместимым с автомобильными приложениями .
- Функция Play: зачитывает уведомление водителю, используя встроенного в автомобиль цифрового помощника, такого как Gemini или Google Assistant, или встроенную в автомобиль систему преобразования текста в речь.
Отключение звука: предотвращает появление уведомлений о любых будущих сообщениях в переписке до конца поездки. Уведомления о сообщениях из отключенной переписки по-прежнему отображаются в Центре уведомлений, и водитель также может включить звук в этой переписке через Центр уведомлений.
- Упрощенные параметры отображения уведомлений
RemoteViewsи пользовательские представления контента не поддерживаются. Кроме того, не поддерживаются следующие стили уведомлений:Если ваше приложение отправляет уведомление в Android Automotive OS, используя один из этих стилей уведомлений, отображается только краткий текст.
- Упрощенное управление каналами уведомлений
Операционная система Android Automotive не поддерживает каналы уведомлений и связанные с ними элементы пользовательского интерфейса, чтобы уменьшить распространенность сложных задач управления в автомобильных устройствах.
Ограничения пользовательского интерфейса в зависимости от состояния привода.
Операционная система Android Automotive включает в себя механизм ограничения пользовательского интерфейса (UX Restrictions Engine). Автопроизводители могут использовать этот механизм для ограничения уведомлений в зависимости от состояния автомобиля следующими способами:
- Усечение строк уведомлений до определенной длины символов.
- Скрытие кратких описаний сообщений для уведомлений
CATEGORY_MESSAGE - Ограничение количества уведомлений, которые может отображать Центр уведомлений.
Поддерживаемые типы ресурсов
По умолчанию Android Automotive OS поддерживает ограниченное подмножество типов ресурсов, которые могут использоваться для уведомлений на других устройствах. Это подмножество включает следующие типы ресурсов:
- Drawables
- Иконки
- Изображения
Требования к совместимости для уведомлений в виде сообщений.
Для обеспечения единообразного и минимально отвлекающего пользовательского опыта, уведомления о сообщениях имеют особые требования к операционной системе Android Automotive OS.
Уведомление о сообщении считается совместимым с автомобилем, если оно соответствует следующим требованиям:
- Оно относится к категории
CATEGORY_MESSAGE. - Используется стиль
Notification.MessagingStyle. - В него включены только непрочитанные сообщения.
Оно имеет
Action«пометить как прочитанное», которое отвечает следующим требованиям:- Семантическое действие установлено на
Action.SEMANTIC_ACTION_MARK_AS_READ. - В описании
Actionуказано, что при его выполнении пользовательский интерфейс не отображается.
- Семантическое действие установлено на
Если уведомление содержит
Actionдля ответа, то этоActionдолжно соответствовать следующим требованиям:- Семантическое действие задано как
Action.SEMANTIC_ACTION_REPLY. - В описании
Actionуказано, что при его выполнении пользовательский интерфейс не отображается. -
Actionсодержит единственныйRemoteInput.
- Семантическое действие задано как
Центр уведомлений
Практически все уведомления отображаются в Центре уведомлений, даже если они также были вызваны как предупреждающие оповещения. Уведомления остаются в Центре уведомлений на протяжении всего процесса поездки.
Водители могут взаимодействовать с уведомлениями в Центре уведомлений. В зависимости от производителя автомобиля, доступ к Центру уведомлений возможен одним или обоими из следующих способов:
- Проведите пальцем вниз от верхнего края экрана, как в панели уведомлений на других устройствах.
- Нажатие кнопки в системном интерфейсе.
Группированные уведомления
Связанные уведомления автоматически группируются в Центре уведомлений, как и в панели уведомлений на других устройствах. Однако, когда пользователь нажимает на сводку группы в Центре уведомлений, вместо запуска PendingIntent группа разворачивается, отображая все содержащиеся в ней уведомления.
Уведомления, которые не отображаются в Центре уведомлений
Следующие уведомления не отображаются в Центре уведомлений:
- Уведомления
Media playback. Операционная система Android Auto собирает информацию о текущем воспроизведении мультимедиа и отображает её в специально отведённом месте пользовательского интерфейса. Обратите внимание, что для того, чтобы система распознала уведомление как уведомление о воспроизведении мультимедиа, необходимо вызватьsetMediaSessionс ненулевым токеном. - Пошаговые навигационные уведомления для
CATEGORY_NAVIGATION. - Уведомления служб переднего плана для системных привилегированных приложений и приложений, подписанных ключом платформы, уровень важности которых ниже
IMPORTANCE_DEFAULT.
Уведомления о событиях
Уведомления на лобовом стекле отображаются в виде карточки-уведомления в верхней части экрана. Поскольку такие уведомления привлекают внимание водителя, их следует активировать только в том случае, если информация критически важна для вождения, требует немедленного реагирования и принятия мер. Уведомления на лобовом стекле могут активироваться только для определенных категорий уведомлений.
Автопроизводители могут сами решать, разрешать ли отображение предупреждающих уведомлений во время работы Центра уведомлений.
Как приложения запускают всплывающие уведомления
Для запуска всплывающего уведомления приложениям требуются разные условия в зависимости от наличия у них системных привилегий.
- Приложения с системными привилегиями и приложения, подписанные с помощью ключа платформы.
- Приложение может инициировать всплывающее уведомление, установив для канала уведомлений значение важности
IMPORTANCE_HIGHили выше. - Все остальные приложения
Приложение может инициировать всплывающее уведомление, установив важность канала уведомлений на
IMPORTANCE_HIGHили выше и проверив, относится ли уведомление к одной из следующих категорий:
Срок службы всплывающего уведомления
После того, как приложение инициирует всплывающее уведомление, оно немедленно появляется на экране автомобиля. Если водитель не предпринимает никаких действий, всплывающее уведомление автоматически закрывается через 8 секунд, за исключением следующих случаев:
Уведомления о входящих звонках нельзя проигнорировать, и они остаются активными до тех пор, пока водитель не примет звонок или звонок не будет завершен. Чтобы уведомление о входящем звонке считалось неотключаемым, оно должно соответствовать следующим требованиям:
- Относится к
CATEGORY_CALL - Установить полноэкранный режим
- Пометить как продолжающийся процесс можно с помощью метода
setOngoing()
- Относится к
Уведомления остаются активными, если приложение обновляет их в течение восьмисекундного временного интервала.
Если уведомление отклоняется, оно отображается в Центре уведомлений, за исключением уведомлений CATEGORY_NAVIGATION .
Изменения и ограничения API уведомлений для автомобилей
В этом разделе кратко изложены различия для каждого класса, в которых API уведомлений ведет себя по-разному или имеет ограничения для Android Automotive OS.
Notification.Builder
В таблицах 1 и 2 описаны изменения и ограничения API в классе Notification.Builder .
Таблица 1. Изменения в публичных методах Notification.Builder
| Общедоступные методы | Эффект | Описание |
|---|---|---|
| Условное бездействие | Для уведомлений Notification.MessagingStyle необходимо добавить действия, указанные в требованиях совместимости . Любые дополнительные добавленные действия не будут отображаться в виде кнопок уведомлений. |
| Без операции | RemoteViews и пользовательские представления контента не поддерживаются. |
| Без операции | Значки уведомлений не поддерживаются. |
| Без операции | Таймеры обратного отсчета не поддерживаются. |
setColorized() | Ограничения изменились. | Приложения, подписанные платформой : настраиваемые; разрешены по умолчанию. Приложения с системными привилегиями : настраиваются платформой; по умолчанию запрещены. Все остальные приложения : настраиваются платформой; по умолчанию запрещены. |
setFullScreenIntent() | Поведение изменилось | Не запускает намерение автоматически. |
setLargeIcon() | Поведение изменилось | Крупные значки отображаются в правой части уведомления. |
setLights() | Без операции | Устройства под управлением Android Automotive OS не имеют светодиодных индикаторов. |
setOngoing() | Поведение изменилось | Поведение меняется, когда уведомление также запускает всплывающее уведомление. Водители могут отключить все остальные типы предупреждающих уведомлений. |
| Без операции | Приватный режим не поддерживается. |
setSettingsText() | Без операции | Уведомления не поддерживают функции, позволяющие получить доступ к настройкам приложения. Водители получают доступ к настройкам приложения через само приложение. |
setTicker() | Без операции | Бегущая строка текста не поддерживается. |
Таблица 2. Изменения во вложенных классах для Notification.Builder
| Вложенные классы | Эффект | Описание |
|---|---|---|
| Не используется | Отображается только краткий текст. Подробные уведомления для этих стилей не поддерживаются. |
Notification.BubbleMetadata | Не используется | Функция «Пузырьки» не поддерживается. |
Notification.MediaStyle | Скрытый | Уведомления с таким стилем скрыты. Android Automotive OS управляет взаимодействием с пользовательским интерфейсом для уведомлений о воспроизведении мультимедиа и самих уведомлений. |
Notification.MessagingStyle | Поведение изменилось | Уведомления, оформленные в таком стиле, имеют следующие отличия:
|
| Не используется | Расширения не поддерживаются. |
Notification.Action.Builder
В таблице 3 описаны изменения и ограничения API в классе Notification.Action.Builder .
Таблица 3. Изменения в публичных методах для Notification.Action.Builder
| Общедоступные методы | Эффект | Описание |
|---|---|---|
| Государственные строители | Поведение изменилось | Значки, указанные в открытых конструкторах, игнорируются. |
addRemoteInput | Поведение изменилось | Чтобы свести к минимуму отвлечение внимания водителя, цифровой помощник, такой как Gemini или Google Assistant, автоматически вставляет ответ на сообщение за пользователя. Пользователи не могут вводить сообщения вручную. |
setAllowGeneratedReplies | Без операции | Функция Smart Reply не поддерживается. |