Уведомления предоставляют водителям краткую и своевременную информацию о событиях в вашем приложении, пока оно не используется. Уведомления могут отображаться в Центре уведомлений , а некоторые уведомления также могут отображаться в виде уведомлений на дисплее. Для создания уведомлений для Android Automotive OS вы используете тот же API NotificationBuilder
, который вы используете для других устройств. Однако, чтобы обеспечить безопасность водителей и свести к минимуму отвлекающие факторы, некоторые методы и классы API ограничены или ведут себя по-другому.
Чем отличаются уведомления в автомобилях
Чтобы создать безопасную среду вождения, свободную от отвлекающих факторов, уведомления в ОС Android Automotive отличаются от уведомлений на других устройствах следующим образом:
- Упрощенное взаимодействие с пользователем
- Ограничения UX в зависимости от состояния диска
Упрощенное взаимодействие с пользователем
Чтобы водители могли сосредоточиться на дороге, уведомления в автомобиле имеют упрощенную модель взаимодействия с пользователем со следующими функциями:
- Никакого сложного управления
- Уведомления не допускают сложных элементов управления, таких как нажатие для раскрытия уведомления, длительное нажатие уведомления для доступа к дополнительным параметрам или использование элементов управления на основе жестов смахивания.
- Звуки уведомлений
- Уведомления воспроизводят звук только в том случае, если они вызывают хедз-ап-уведомление.
Android Automotive OS автоматически добавляет кнопки «Воспроизвести» и «Отключить звук» ко всем автомобильным уведомлениям о сообщениях .
- Воспроизведение: читает уведомление водителю с помощью цифрового помощника пользователя по умолчанию, такого как Google Assistant, или системы преобразования текста в речь по умолчанию в автомобиле.
Отключить звук: предотвращает появление уведомлений о любых будущих сообщениях в разговоре до конца поездки. Уведомления о сообщениях в отключенном разговоре по-прежнему отображаются в Центре уведомлений, и водитель также может включить звук разговора из Центра уведомлений.
- Упрощенные параметры отображения уведомлений
RemoteViews
и пользовательские представления контента не поддерживаются. Кроме того, не поддерживаются следующие стили уведомлений:-
BigPictureStyle
-
BigTextStyle
-
InboxStyle
Если ваше приложение отправляет уведомление в Android Automotive OS, используя один из этих стилей уведомлений, отображается только сводный текст.
-
- Упрощенное управление каналами уведомлений
ОС Android Automotive не поддерживает каналы уведомлений и связанные с ними возможности пользовательского интерфейса, чтобы уменьшить распространенность сложных задач управления на автомобильных устройствах.
Ограничения UX в зависимости от состояния диска
ОС Android Automotive включает механизм ограничений пользовательского интерфейса. Производители автомобилей могут использовать этот механизм для ограничения уведомлений в зависимости от состояния движения автомобиля следующими способами:
- Усечение строк уведомлений до определенной длины символов
- Скрытие сводки сообщений для уведомлений
CATEGORY_MESSAGE
- Ограничение количества уведомлений, которые может отображать Центр уведомлений.
Поддерживаемые типы ресурсов
По умолчанию Android Automotive OS поддерживает ограниченное подмножество типов ресурсов, которые можно использовать для уведомлений на других устройствах. В это подмножество входят следующие типы ресурсов:
- Рисованные
- Иконки
- Изображения
Требования совместимости для уведомлений о сообщениях
Чтобы обеспечить единообразие и минимальное отвлечение пользователя, к уведомлениям о сообщениях предъявляются особые требования в ОС Android Automotive.
Уведомление о сообщении совместимо с автомобилем, если оно соответствует следующим требованиям:
- Оно относится к категории
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 Automotive и отображается в специальном месте пользовательского интерфейса. Обратите внимание, чтоsetMediaSession
необходимо вызывать с ненулевым токеном, чтобы уведомление распознавалось как воспроизведение мультимедиа. - Уведомления о пошаговой навигации для
CATEGORY_NAVIGATION
. - Уведомления службы переднего плана для приложений с привилегиями системы и приложений, подписанных ключом платформы и имеющих уровень важности ниже, чем
IMPORTANCE_DEFAULT
.
Уведомления в режиме «хедз-ап»
Уведомления в виде хедз-апа отображаются в виде карточки уведомлений в верхней части экрана. Поскольку предупреждающее уведомление привлекает внимание водителя, запускайте его только в том случае, если информация важна для поездки, чувствительна ко времени и требует принятия мер. Только определенные категории уведомлений могут вызвать хедз-ап-уведомление.
Производители автомобилей могут решить, разрешать ли отображение хедз-ап-уведомлений, пока открыт Центр уведомлений.
Как приложения запускают хедз-ап уведомления
Приложения предъявляют разные требования к запуску хедз-ап-уведомлений в зависимости от того, есть ли у них системные привилегии.
- Приложения с привилегиями системы и приложения, подписанные с помощью ключа платформы.
- Приложение может активировать хедз-ап-уведомление, установив для важности канала уведомлений значение
IMPORTANCE_HIGH
или выше. - Все остальные приложения
Приложение может активировать хедз-ап-уведомление, установив для важности канала уведомлений значение
IMPORTANCE_HIGH
или выше и гарантируя, что уведомление принадлежит к одной из следующих категорий:
Жизнь хедз-ап уведомлений
После того как приложение запускает хедз-ап-уведомление, оно сразу же появляется на экране автомобиля. Если водитель не предпринимает никаких действий, хедз-ап-уведомление автоматически закрывается через восемь секунд, за исключением следующих случаев:
Информационные уведомления для определенных входящих вызовов нельзя отклонить, и они остаются в силе до тех пор, пока водитель не примет вызов или вызов не будет завершен. Чтобы квалифицироваться как неотклоняемое хедз-ап-уведомление о входящем звонке, уведомление должно отвечать следующим требованиям:
- Принадлежит к
CATEGORY_CALL
- Установите полноэкранное намерение
- Быть отмеченным как продолжающееся с помощью метода
setOngoing()
- Принадлежит к
Уведомления Heads-up остаются, если приложение обновляет уведомление в течение восьмисекундного интервала.
Когда хедз-ап уведомление отклонено, оно отображается в Центре уведомлений, если только оно не является уведомлением 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 | Поведение изменено | Чтобы свести к минимуму отвлечение водителя, цифровой помощник, такой как Google Assistant, вставляет ответ на сообщение для пользователя. Пользователи не могут вводить сообщения. |
setAllowGeneratedReplies | Нет операции | Умный ответ не поддерживается. |
Уведомления предоставляют водителям краткую и своевременную информацию о событиях в вашем приложении, пока оно не используется. Уведомления могут отображаться в Центре уведомлений , а некоторые уведомления также могут отображаться в виде уведомлений на дисплее. Для создания уведомлений для Android Automotive OS вы используете тот же API NotificationBuilder
, который вы используете для других устройств. Однако, чтобы обеспечить безопасность водителей и свести к минимуму отвлекающие факторы, некоторые методы и классы API ограничены или ведут себя по-другому.
Чем отличаются уведомления в автомобилях
Чтобы создать безопасную среду вождения, свободную от отвлекающих факторов, уведомления в ОС Android Automotive отличаются от уведомлений на других устройствах следующим образом:
- Упрощенное взаимодействие с пользователем
- Ограничения UX в зависимости от состояния диска
Упрощенное взаимодействие с пользователем
Чтобы водители могли сосредоточиться на дороге, уведомления в автомобиле имеют упрощенную модель взаимодействия с пользователем со следующими функциями:
- Никакого сложного управления
- Уведомления не допускают сложных элементов управления, таких как нажатие для раскрытия уведомления, длительное нажатие уведомления для доступа к дополнительным параметрам или использование элементов управления на основе жестов смахивания.
- Звуки уведомлений
- Уведомления воспроизводят звук только в том случае, если они вызывают хедз-ап-уведомление.
Android Automotive OS автоматически добавляет кнопки «Воспроизвести» и «Отключить звук» ко всем автомобильным уведомлениям о сообщениях .
- Воспроизведение: читает уведомление водителю с помощью цифрового помощника пользователя по умолчанию, такого как Google Assistant, или системы преобразования текста в речь по умолчанию в автомобиле.
Отключить звук: предотвращает появление уведомлений о любых будущих сообщениях в разговоре до конца поездки. Уведомления о сообщениях в отключенном разговоре по-прежнему отображаются в Центре уведомлений, и водитель также может включить звук разговора из Центра уведомлений.
- Упрощенные параметры отображения уведомлений
RemoteViews
и пользовательские представления контента не поддерживаются. Кроме того, не поддерживаются следующие стили уведомлений:-
BigPictureStyle
-
BigTextStyle
-
InboxStyle
Если ваше приложение отправляет уведомление в Android Automotive OS, используя один из этих стилей уведомлений, отображается только сводный текст.
-
- Упрощенное управление каналами уведомлений
ОС Android Automotive не поддерживает каналы уведомлений и связанные с ними возможности пользовательского интерфейса, чтобы уменьшить распространенность сложных задач управления на автомобильных устройствах.
Ограничения UX в зависимости от состояния диска
ОС Android Automotive включает механизм ограничений пользовательского интерфейса. Производители автомобилей могут использовать этот механизм для ограничения уведомлений в зависимости от состояния движения автомобиля следующими способами:
- Усечение строк уведомлений до определенной длины символов
- Скрытие сводки сообщений для уведомлений
CATEGORY_MESSAGE
- Ограничение количества уведомлений, которые может отображать Центр уведомлений.
Поддерживаемые типы ресурсов
По умолчанию Android Automotive OS поддерживает ограниченное подмножество типов ресурсов, которые можно использовать для уведомлений на других устройствах. В это подмножество входят следующие типы ресурсов:
- Рисованные
- Иконки
- Изображения
Требования совместимости для уведомлений о сообщениях
Чтобы обеспечить единообразие и минимальное отвлечение пользователя, к уведомлениям о сообщениях предъявляются особые требования в ОС Android Automotive.
Уведомление о сообщении совместимо с автомобилем, если оно соответствует следующим требованиям:
- Оно относится к категории
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 Automotive и отображается в специальном месте пользовательского интерфейса. Обратите внимание, чтоsetMediaSession
необходимо вызывать с ненулевым токеном, чтобы уведомление распознавалось как воспроизведение мультимедиа. - Уведомления о пошаговой навигации для
CATEGORY_NAVIGATION
. - Уведомления службы переднего плана для приложений с привилегиями системы и приложений, подписанных ключом платформы и имеющих уровень важности ниже, чем
IMPORTANCE_DEFAULT
.
Уведомления в режиме «хедз-ап»
Уведомления в виде хедз-апа отображаются в виде карточки уведомлений в верхней части экрана. Поскольку предупреждающее уведомление привлекает внимание водителя, запускайте его только в том случае, если информация важна для поездки, чувствительна ко времени и требует принятия мер. Только определенные категории уведомлений могут вызвать хедз-ап-уведомление.
Производители автомобилей могут решить, разрешать ли отображение хедз-ап-уведомлений, пока открыт Центр уведомлений.
Как приложения запускают хедз-ап уведомления
Приложения предъявляют разные требования к запуску хедз-ап-уведомлений в зависимости от того, есть ли у них системные привилегии.
- Приложения с привилегиями системы и приложения, подписанные с помощью ключа платформы.
- Приложение может активировать хедз-ап-уведомление, установив для важности канала уведомлений значение
IMPORTANCE_HIGH
или выше. - Все остальные приложения
Приложение может активировать хедз-ап-уведомление, установив для важности канала уведомлений значение
IMPORTANCE_HIGH
или выше и гарантируя, что уведомление принадлежит к одной из следующих категорий:
Жизнь хедз-ап уведомлений
После того как приложение запускает хедз-ап-уведомление, оно сразу же появляется на экране автомобиля. Если водитель не предпринимает никаких действий, хедз-ап-уведомление автоматически закрывается через восемь секунд, за исключением следующих случаев:
Информационные уведомления для определенных входящих вызовов нельзя отклонить, и они остаются в силе до тех пор, пока водитель не примет вызов или вызов не будет завершен. Чтобы квалифицироваться как неотклоняемое хедз-ап-уведомление о входящем звонке, уведомление должно отвечать следующим требованиям:
- Принадлежит к
CATEGORY_CALL
- Установите полноэкранное намерение
- Быть отмеченным как продолжающееся с помощью метода
setOngoing()
- Принадлежит к
Уведомления Heads-up остаются, если приложение обновляет уведомление в течение восьмисекундного интервала.
Когда хедз-ап уведомление отклонено, оно отображается в Центре уведомлений, если только оно не является уведомлением 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 | Поведение изменено | Чтобы свести к минимуму отвлечение водителя, цифровой помощник, такой как Google Assistant, вставляет ответ на сообщение для пользователя. Пользователи не могут вводить сообщения. |
setAllowGeneratedReplies | Нет операции | Умный ответ не поддерживается. |