Уведомления в автомобильной ОС Android

Уведомления предоставляют водителям краткую и своевременную информацию о событиях в вашем приложении, пока оно не используется. Уведомления могут отображаться в Центре уведомлений , а некоторые уведомления также могут отображаться в виде уведомлений на дисплее. Для создания уведомлений для 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 или выше и гарантируя, что уведомление принадлежит к одной из следующих категорий:

Жизнь хедз-ап уведомлений

После того как приложение запускает хедз-ап-уведомление, оно сразу же появляется на экране автомобиля. Если водитель не предпринимает никаких действий, хедз-ап-уведомление автоматически закрывается через восемь секунд, за исключением следующих случаев:

  • Информационные уведомления для определенных входящих вызовов нельзя отклонить, и они остаются в силе до тех пор, пока водитель не примет вызов или вызов не будет завершен. Чтобы квалифицироваться как неотклоняемое хедз-ап-уведомление о входящем звонке, уведомление должно отвечать следующим требованиям:

  • Уведомления Heads-up остаются, если приложение обновляет уведомление в течение восьмисекундного интервала.

Когда хедз-ап уведомление отклонено, оно отображается в Центре уведомлений, если только оно не является уведомлением CATEGORY_NAVIGATION .

Изменения и ограничения API уведомлений для автомобилей

В этом разделе суммированы различия для каждого класса, где API уведомлений ведет себя по-разному или имеет ограничения для Android Automotive OS.

Notification.Builder

В таблицах 1 и 2 описаны изменения и ограничения API в классе Notification.Builder .

Таблица 1 . Изменения в публичных методах Notification.Builder

Публичные методы Эффект Описание

addAction()

Условное отсутствие операций Уведомления Notification.MessagingStyle должны добавлять действия, указанные в требованиях совместимости . Любые добавленные дополнительные действия не будут отображаться как кнопки уведомлений.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Нет операции RemoteViews и пользовательские представления контента не поддерживаются.

setBadgeIconType()

setNumber()

Нет операции Значки уведомлений не поддерживаются.

setChronometerCountDown()

setUsesChronometer()

Нет операции Таймеры обратного отсчета не поддерживаются.
setColorized() Ограничения изменены

Приложения, подписанные платформой : настраиваемые; разрешено по умолчанию.

Приложения с привилегиями системы : настраиваются платформой; запрещено по умолчанию.

Все остальные приложения : настраиваются платформой; запрещено по умолчанию.

setFullScreenIntent() Поведение изменено Не запускает намерение автоматически.
setLargeIcon() Поведение изменено Большие значки отображаются в правой части уведомления.
setLights() Нет операции Устройства Android Automotive OS не имеют светодиодных индикаторов.
setOngoing() Поведение изменено

Поведение отличается, когда уведомление также запускает хедз-ап-уведомление.

setOngoing() делает уведомление неотключаемым только в том случае, если оно предназначено для входящего вызова. Чтобы квалифицироваться как неотклоняемое хедз-ап-уведомление о входящем вызове, уведомление должно выполнять функцию setPublicVersion().

setVisibility()

Нет операции Приватный режим не поддерживается.
setSettingsText() Нет операции Уведомления не поддерживают возможности, связанные с настройками приложения. Вместо этого водители получают доступ к настройкам приложения через приложение.
setTicker() Нет операции Текст тикера не поддерживается.

Таблица 2 . Изменения во вложенных классах Notification.Builder

Вложенные классы Эффект Описание

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Не используется Отображается только сводный текст. Подробные уведомления для этих стилей не поддерживаются.
Notification.BubbleMetadata Не используется Пузыри не поддерживаются.
Notification.MediaStyle Скрытый Уведомления с этим стилем скрыты. Android Automotive OS управляет взаимодействием пользовательского интерфейса для уведомлений и воспроизведения мультимедиа.
Notification.MessagingStyle Поведение изменено

Уведомления с этим стилем имеют следующие отличия:

Notification.CarExtender

Notification.WearableExtender

Не используется Расширители не поддерживаются.

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 или выше и гарантируя, что уведомление принадлежит к одной из следующих категорий:

Жизнь хедз-ап уведомлений

После того как приложение запускает хедз-ап-уведомление, оно сразу же появляется на экране автомобиля. Если водитель не предпринимает никаких действий, хедз-ап-уведомление автоматически закрывается через восемь секунд, за исключением следующих случаев:

  • Информационные уведомления для определенных входящих вызовов нельзя отклонить, и они остаются в силе до тех пор, пока водитель не примет вызов или вызов не будет завершен. Чтобы квалифицироваться как неотклоняемое хедз-ап-уведомление о входящем звонке, уведомление должно отвечать следующим требованиям:

  • Уведомления Heads-up остаются, если приложение обновляет уведомление в течение восьмисекундного интервала.

Когда хедз-ап уведомление отклонено, оно отображается в Центре уведомлений, если только оно не является уведомлением CATEGORY_NAVIGATION .

Изменения и ограничения API уведомлений для автомобилей

В этом разделе суммированы различия для каждого класса, где API уведомлений ведет себя по-разному или имеет ограничения для Android Automotive OS.

Notification.Builder

В таблицах 1 и 2 описаны изменения и ограничения API в классе Notification.Builder .

Таблица 1 . Изменения в публичных методах Notification.Builder

Публичные методы Эффект Описание

addAction()

Условное отсутствие операций Уведомления Notification.MessagingStyle должны добавлять действия, указанные в требованиях совместимости . Любые добавленные дополнительные действия не будут отображаться как кнопки уведомлений.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Нет операции RemoteViews и пользовательские представления контента не поддерживаются.

setBadgeIconType()

setNumber()

Нет операции Значки уведомлений не поддерживаются.

setChronometerCountDown()

setUsesChronometer()

Нет операции Таймеры обратного отсчета не поддерживаются.
setColorized() Ограничения изменены

Приложения, подписанные платформой : настраиваемые; разрешено по умолчанию.

Приложения с привилегиями системы : настраиваются платформой; запрещено по умолчанию.

Все остальные приложения : настраиваются платформой; запрещено по умолчанию.

setFullScreenIntent() Поведение изменено Не запускает намерение автоматически.
setLargeIcon() Поведение изменено Большие значки отображаются в правой части уведомления.
setLights() Нет операции Устройства Android Automotive OS не имеют светодиодных индикаторов.
setOngoing() Поведение изменено

Поведение отличается, когда уведомление также запускает хедз-ап-уведомление.

setOngoing() делает уведомление неотключаемым только в том случае, если оно предназначено для входящего вызова. Чтобы квалифицироваться как неотклоняемое хедз-ап-уведомление о входящем вызове, уведомление должно выполнять функцию setPublicVersion().

setVisibility()

Нет операции Приватный режим не поддерживается.
setSettingsText() Нет операции Уведомления не поддерживают возможности, связанные с настройками приложения. Вместо этого водители получают доступ к настройкам приложения через приложение.
setTicker() Нет операции Текст тикера не поддерживается.

Таблица 2 . Изменения во вложенных классах Notification.Builder

Вложенные классы Эффект Описание

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Не используется Отображается только сводный текст. Подробные уведомления для этих стилей не поддерживаются.
Notification.BubbleMetadata Не используется Пузыри не поддерживаются.
Notification.MediaStyle Скрытый Уведомления с этим стилем скрыты. Android Automotive OS управляет взаимодействием пользовательского интерфейса для уведомлений и воспроизведения мультимедиа.
Notification.MessagingStyle Поведение изменено

Уведомления с этим стилем имеют следующие отличия:

Notification.CarExtender

Notification.WearableExtender

Не используется Расширители не поддерживаются.

Notification.Action.Builder

В таблице 3 описаны изменения и ограничения API в классе Notification.Action.Builder .

Таблица 3 . Изменения в общедоступных методах Notification.Action.Builder .

Публичные методы Эффект Описание
Общественные конструкторы Поведение изменено Значки, указанные в публичных конструкторах, игнорируются.
addRemoteInput Поведение изменено Чтобы свести к минимуму отвлечение водителя, цифровой помощник, такой как Google Assistant, вставляет ответ на сообщение для пользователя. Пользователи не могут вводить сообщения.
setAllowGeneratedReplies Нет операции Умный ответ не поддерживается.