Уведомления

Уведомления предоставляют краткую, своевременную и актуальную информацию, связанную с вашим приложением, когда оно не используется.

Android OS контролирует многие аспекты уведомлений, но вы можете контролировать другие аспекты. Выполните следующие шаги при внедрении уведомлений:

  1. Понять структуру уведомления.
  2. Выберите тип уведомления для вашего варианта использования.
  3. Установите категорию уведомлений, соответствующую выбранному вами типу уведомлений.

Выносы

  • Подумайте о цели уведомления: почему вы оповещаете своих пользователей?
  • Определите схему разрешений на отправку уведомлений, подумайте, насколько важны уведомления для вашего приложения и на каком этапе пути пользователя следует задать вопрос.
  • Выберите шаблон уведомления.
  • Создать содержимое уведомления:
    • Текст заголовка должен кратко излагать суть уведомления.
    • Текст содержимого должен предварительно просматриваться в уведомлении.
    • Содержимое изображения, если оно применимо к содержанию вашего приложения.
    • Медиа-картинка и метаданные для медиа-шаблона.
  • Сделайте очевидным, что пользователь может сделать с уведомлением, предоставив действия на основе его содержимого с помощью текстовых кнопок, ввода текста или элементов управления мультимедиа.
  • Добавьте значок вашего приложения и задайте цвет фона значка приложения.
  • Установите каналы и категории для ваших уведомлений. Это позволяет системе и вашему пользователю настраивать, какие уведомления они получают, и обеспечивает приоритетное поведение.
  • Если ваше приложение может отправлять несколько уведомлений одновременно, группируйте уведомления.
  • Шаблоны уведомлений можно найти в Android UI Kit на Figma .

Анатомия уведомления

Уведомления разработаны для того, чтобы облегчить сканирование и использование наиболее важных элементов уведомления. Эти элементы:

  • Первичное содержимое : это наиболее заметный элемент уведомления. Вторичная информация, такая как временная метка, меньше и консолидирована над первичным содержимым.
  • Люди : если в уведомлении упоминается человек, аватар будет выделяться на фоне остального контента.
  • Действия : пользователи могут развернуть уведомления, нажав на значок индикатора. Действия отображаются с текстовыми метками на отдельном цвете фона и в отдельном месте.
Рисунок 1: Свернутое уведомление

Заголовок и содержание уведомления

В свернутом виде уведомление показывает значок приложения, текст заголовка, временную метку, индикатор развертывания и текст содержимого. Также может опционально отображаться большой значок.

Рисунок 2: Область заголовка уведомления

1 Значок приложения: Значок приложения — это двухмерное представление идентификатора вашего приложения. Он отображается в монохромном виде в строке состояния. Если ваше приложение отправляет широкий спектр уведомлений, рассмотрите возможность замены значка приложения на символ, чтобы различать различные типы уведомлений. Подробнее см. в разделе Применение цвета значка .

2 Текст заголовка: краткий заголовок уведомления или источника, например имя учетной записи для пользователей. Контент является наиболее заметным элементом уведомления.

3 Временная метка: указывает, когда было отправлено уведомление, например, время пропущенного вызова.

4 Индикатор раскрытия: указывает, находится ли уведомление в свернутом или развернутом состоянии.

5 Текст содержания: вспомогательная информация.

6 Большой значок (необязательно): можно добавить изображение, чтобы подчеркнуть значимость уведомления, например, сообщение, включающее аватар отправителя.

Применить цвет значка

Начиная с Android 12 (API level 31) система извлекает цвет значка из цвета уведомления, установленного вами в приложении. Если приложение не устанавливает цвет, оно использует цвет темы системы. Ранее цвет был серым.

Рисунок 3: Результирующий стилизованный цвет значка приложения

Для большинства стилей система применяет этот цвет только в том случае, если уведомление предназначено для уведомления службы переднего плана. Однако для уведомлений MediaStyle и DecoratedMediaCustomViewStyle , имеющих прикрепленный сеанс мультимедиа, такого требования нет.

В следующем фрагменте показано, как применить цвет значка.

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

Действия уведомления

Рисунок 4: Область действия уведомления

1 Действия текстовой кнопки

2 заполненные кнопки действий

3 предложенных ответа

4 Поле для текста ответа

Начиная с Android 7.0 (уровень API 24) система показывает действия без иконок, чтобы вместить больше текста. Для поддержки устройств Android Wear и устройств под управлением Android 6.0 (уровень API 23) и ниже ваше приложение все равно должно предоставлять иконку.

Расширенные просмотры

Вы можете использовать расширенный вид, чтобы отобразить пользователю больше информации, не выходя из уведомления.

При развертывании уведомление может содержать до трех любых из следующих видов действий:

  • Предложенные ответы
  • Выделенные действия (кнопки в форме таблеток)
  • Стандартные текстовые действия
Включите текстовые действия, которые дублируют поведение при нажатии на текст уведомления.
Дайте пользователю возможность взаимодействовать с уведомлением. Приложение Google Clock показывает работающий таймер, но позволяет пользователю приостановить его или добавить минуту прямо из уведомления.

Включить уведомления о вводе текста

Вы позволяете пользователю вводить текст непосредственно в уведомление, включив действие «Ответить». Это предназначено для ввода небольшого количества текста, например, ответа на текстовое сообщение или краткой заметки.

Для ввода более длинного текста перенаправьте пользователей в ваше приложение, чтобы предоставить им больше места для просмотра и редактирования текста.

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

Рисунок 5: Пользователь отвечает непосредственно в приложении «Сообщения Android», не выходя из уведомления после нажатия «Ответить»

Выберите тип уведомления в зависимости от вашего варианта использования.

Google использует следующие шаблоны уведомлений в своих приложениях Android. Эти шаблоны можно в некоторой степени настроить для вашего приложения.

Шаблоны уведомлений можно найти в Android UI Kit на Figma.

Стандартный шаблон

Стандартный шаблон подходит для большинства уведомлений, позволяя использовать краткий текст, большой значок (если применимо) и действия.

Рисунок 6: Стандартный шаблон уведомления

Большой текстовый шаблон

Шаблон большого текста идеально подходит для отображения блоков более длинного текста. Он позволяет пользователю просматривать больше текста после того, как он развернет уведомление.

Рисунок 7: Большой текстовый шаблон с опцией большого значка

Шаблон большой картины

Шаблон большой картинки предназначен для уведомлений, содержащих изображение. В свернутом виде уведомление показывает большую иконку миниатюры картинки. В развернутом виде уведомление показывает гораздо более крупный предварительный просмотр.

Рисунок 8: Шаблон общей картины

Шаблон прогресса

Шаблон прогресса предназначен для действий, инициированных пользователем, которые требуют времени для завершения. При развертывании уведомление, использующее этот шаблон, показывает полосу прогресса, а также включает действие «отменить», которое позволяет пользователю прекратить это действие. (Неотменяемые действия не требуют уведомлений.)

Рисунок 9: Шаблон прогресса

Медиа-шаблон

Шаблон мультимедиа предназначен для того, чтобы позволить пользователю управлять воспроизводимым в данный момент мультимедиа из приложения.

  • В свернутом виде уведомление может отображать до трех действий. Большой значок может отображать связанное изображение, например обложку альбома.
  • При развертывании уведомление отображает до пяти действий с большим изображением или шесть действий без изображения. Фон и другие элементы уведомления автоматически наследуют цвета изображения.
Рисунок 10: Медиа-шаблон

Шаблон сообщения

Шаблон MessagingStyle предназначен для общения в реальном времени. При развертывании уведомление с использованием этого шаблона позволяет пользователю отвечать на сообщения из уведомления.

Рисунок 11: Шаблон сообщения

Шаблон вызова

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

Рисунок 12: Шаблон вызова

Шаблон живых обновлений

Обновления в реальном времени предоставляют сводку важных обновлений, чтобы пользователи могли отслеживать прогресс, не открывая приложение. Пользователи могут временно отклонить или понизить статус уведомления об обновлении в реальном времени до стандартного уведомления. Уведомления об обновлении в реальном времени должны следовать принципам уведомлений для предоставления краткой, своевременной и релевантной информации.

Рисунок 13: Шаблон «Обновления в реальном времени»
Используйте обновления в реальном времени для конечных или отслеживаемых событий, инициированных пользователем.
Используйте обновления в режиме реального времени, если четкого времени окончания действия уведомления нет.

Обновления в реальном времени не работают должным образом в следующих ситуациях:

  • Если информация в уведомлении объединена из нескольких приложений.
  • Если уведомление предназначено для предоставления рекомендаций пользователям.
  • Если для коммуникации требуются специальные визуальные эффекты, анимация или уникальные структуры данных.

Разрешения на уведомления

Несмотря на всю актуальность и своевременность уведомлений, большинство из них не являются исключениями , то есть пользователь должен дать согласие на получение уведомлений от вашего приложения.

Из этого правила есть одно исключение: начиная с Android 13 (API уровня 33) сеансы мультимедиа и приложения, управляющие телефонными звонками, освобождены от необходимости запрашивать согласие пользователя. Существующие ранее приложения также могут быть приемлемыми, если у пользователя уже включены уведомления. Подробнее см. в разделе Исключения .

Мы настоятельно рекомендуем, чтобы ваше приложение предоставляло параметры уведомлений в настройках, чтобы пользователи могли обновлять свои предпочтения в отношении уведомлений .

Предложите пользователю подписаться на уведомления, не подлежащие освобождению от уплаты налогов

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

Рисунок 14: Запрос согласия пользователя на уведомление без освобождения от ответственности

Дождитесь появления диалогового окна уведомления:

  • Опишите преимущества, которые предоставляют уведомления, и последствия отказа от предоставления разрешений на уведомления.
  • Предоставьте контекстный пользовательский интерфейс, связывающий уведомление с его функциями или с тем, на что оно влияет. Этот пользовательский интерфейс может иметь любую форму для лучшей интеграции в ваше приложение: например, карточка в сборе, нижний лист или экран регистрации. Любой из них должен быть отклонимым.
  • Не показывать диалоговое окно разрешения на уведомление, если пользователь закрыл пользовательский интерфейс.

Начиная с Android 13, пользователям может быть повторно предложено предоставить разрешения на получение уведомлений.

Требуемые уведомления

Службы переднего плана выполняют операции, которые заметны пользователю, но при этом они не взаимодействуют напрямую с вашим приложением. Эти службы показывают уведомление в строке состояния, чтобы пользователи знали, что ваше приложение выполняет задачу на переднем плане и потребляет системные ресурсы.

Рисунок 15: Пример уведомления службы фитнес-приложения на переднем плане

Поскольку эти процессы используют батарею и, возможно, данные, ваше приложение должно информировать пользователей о них, показывая неотклоняемое уведомление. Пользователь не может отклонить уведомление, поэтому вы должны предоставить пользователю действие для остановки службы.

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

Когда не следует использовать уведомление

Не используйте уведомления в следующих случаях:

  • Для перекрестного продвижения или рекламы другого продукта (это строго запрещено Play Store)
  • Если пользователь никогда не открывал ваше приложение
  • Как основной метод общения с пользователями
  • Побудить пользователя вернуться в приложение, но не предоставлять прямой ценности (например, «Давно вас не видел!»)
  • Для запросов на оценку вашего приложения
  • Для операций, не требующих участия пользователя, таких как синхронизация информации
  • Для оповещения о состояниях ошибок, из которых приложение может восстановиться без взаимодействия с пользователем.
  • Для сообщений на праздники или дни рождения
Отправляйте поздравления с праздниками или днями рождения в виде уведомлений.
Прерывайте пользователя во время выполнения задачи с единственной целью — спросить, хорошо ли вы справляетесь.

Поведение

Помните о следующих вариантах поведения уведомлений и о том, как с ними обращаться в определенных контекстах.

Прибытие уведомления

Когда приходит уведомление, Android добавляет его в ящик уведомлений. В зависимости от установленных вами параметров и текущего состояния устройства уведомление может выполнять любое из следующих действий:

  • Издайте звук или вызовите вибрацию телефона.
  • Отображается в строке состояния со значком; обычно это значок вашего приложения, но если у вас несколько типов уведомлений, используйте символ, отражающий цель уведомления.
  • Отображается как всплывающее уведомление, всплывающее на текущем экране, чтобы привлечь внимание пользователя.

Как всегда, пользователь может изменить установленное вами поведение уведомлений.

Рисунок 16: Прибытие уведомления

1 Индикатор уведомления в строке состояния, указывающий на наличие уведомления в панели уведомлений.

2 Уведомление «выглядывает» на текущий экран, чтобы привлечь внимание пользователя во время выполнения задачи.

Панель уведомлений

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

  • Заявленный приоритет или важность уведомлений приложения
  • Было ли уведомление недавно оповещено пользователем звуком или вибрацией
  • Все люди, прикрепленные к уведомлению, и являются ли они помеченными контактами
  • Представляет ли уведомление важную текущую активность, например, текущий телефонный звонок или воспроизведение музыки
  • Изменения внешнего вида некоторых уведомлений ОС Android в верхней и нижней части списка путем добавления или снятия акцента, что помогает пользователю просматривать содержимое

Обработка устаревших уведомлений

Панель уведомлений предназначена для отображения пользователям информации, которая актуальна в текущий момент времени. Если более раннее уведомление устарело , то есть больше не актуально, отклоните его, чтобы пользователь его не видел.

Рисунок 17: Только что полученный текст отображается в верхней части панели уведомлений, а уведомление с более низким приоритетом о добавлении фотографии — в нижней части.

Новые уведомления обозначаются значком приложения

В поддерживаемых лаунчерах на устройствах под управлением Android 8.0 (уровень API 26) и выше значки приложений отображают точку уведомления , чтобы указать, что с приложением связано новое уведомление. Эти точки отображаются по умолчанию в приложениях лаунчеров, которые их поддерживают, и вашему приложению ничего не нужно делать. Значки также можно отключить и ограничить.

Рисунок 18: Точка уведомления на значке приложения, указывающая на то, что с приложением связано новое уведомление.

Действия, которые пользователи могут выполнять с уведомлениями

Уведомления могут позволить пользователям выполнять любое из следующих действий:

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

    Когда пользователь нажимает на уведомление, ваше приложение должно отображать пользовательский интерфейс, который напрямую связан с этим уведомлением и позволяет пользователю предпринять немедленные действия. Например, если в уведомлении говорится, что сейчас его очередь в игре для двух игроков, нажатие на уведомление должно перенаправить его прямо в эту игру.

  • Посмотреть развернутый вид уведомления: в заголовке появляется индикатор развертывания. Пользователь может нажать на индикатор или провести пальцем вниз по телу уведомления, чтобы развернуть его.

    Рисунок 19: Расширенное уведомление
  • Отклонить уведомление (если разрешено): пользователь может отклонить его, проведя по нему пальцем влево или вправо.

Текущие уведомления, указывающие на продолжающийся процесс в фоновом режиме, например, воспроизведение музыки, невозможно закрыть свайпом.

  • Отложить уведомление: пользователь может провести пальцем вверх по уведомлению , и никакие дальнейшие уведомления об этом событии не будут отображаться в течение одной минуты.

  • Управляйте подобными уведомлениями в будущем: пользователи могут получить доступ к элементам управления уведомлениями следующими способами:

    • Нажатие и удерживание отдельного уведомления
    • Проведите по уведомлению влево или вправо, а затем нажмите значок настроек.

Отображаемые элементы управления различаются в зависимости от версии Android и наличия у приложения каналов для уведомлений (начиная с Android 8.0).

Группировать несколько уведомлений

Для приложений, которые генерируют несколько уведомлений одного типа, Android предлагает группировку уведомлений, чтобы не перегружать пользователей.

Ваше приложение может отображать несколько уведомлений в соответствии со следующей иерархией.

  • Родительское уведомление отображает сводку дочерних уведомлений.
  • Если пользователь разворачивает родительское уведомление, Android показывает все дочерние уведомления.
  • Пользователь может развернуть дочернее уведомление, чтобы увидеть все его содержимое.

Android представляет дочерние уведомления без дублирующейся информации заголовка. Например, если дочернее уведомление имеет тот же значок приложения, что и его родительское, заголовок дочернего уведомления не будет включать значок.

Уведомления о детях должны быть понятными, если они появляются в одиночку, поскольку система может показывать их вне группы, когда они приходят.

Рисунок 20: Сгруппированные уведомления в свернутом и развернутом виде.

Настройки

Каналы

Начиная с Android 8.0 (уровень API 26) все уведомления должны быть назначены каналу. Для каждого канала вы можете задать визуальное и звуковое поведение, которое применяется ко всем уведомлениям в этом канале. Пользователи могут изменять эти настройки и решать, какие каналы уведомлений из вашего приложения могут быть навязчивыми или видимыми.

Подробную информацию о том, как это реализовать, см. в разделе Создание и управление каналами уведомлений .

Важность следует выбирать с учетом времени и внимания пользователя. Когда неважное уведомление маскируется под срочное, оно может вызвать ненужную тревогу.

Важность Поведение Использование Примеры
HIGH Издает звук и появляется на экране Информация, имеющая решающее значение для времени, которую пользователь должен знать или на основании которой должен действовать немедленно Текстовые сообщения, будильники, телефонные звонки
DEFAULT Издает звук Информация, которую пользователь должен увидеть как можно скорее, но не отвлекая его от выполнения своих задач Оповещения о дорожном движении, напоминания о задачах
LOW Нет звука Каналы оповещения, не соответствующие требованиям других уровней важности Новый контент, на который подписался пользователь, приглашения в социальные сети
MIN Никаких звуковых или визуальных помех. Несущественная информация, которая может подождать или не представляет особой ценности для пользователя. Ближайшие интересные места, погода, рекламный контент

Предопределенные категории

Независимо от того, используете ли вы каналы или нет, назначьте каждому отдельному уведомлению наиболее подходящую предопределенную категорию. Android может использовать эту информацию для принятия решений о ранжировании и фильтрации.

Категория Описание
CATEGORY_CALL Входящий вызов (голосовой или видео) или аналогичный запрос синхронной связи
CATEGORY_MESSAGE Входящее прямое сообщение (СМС, мгновенное сообщение и т. д.)
CATEGORY_EMAIL Асинхронная массовая рассылка сообщений (электронная почта)
CATEGORY_EVENT Календарь событий
CATEGORY_PROMO Продвижение или реклама
CATEGORY_ALARM Будильник или таймер
CATEGORY_PROGRESS Ход выполнения длительной фоновой операции
CATEGORY_SOCIAL Социальная сеть или обновление обмена
CATEGORY_ERROR Ошибка фоновой операции или статуса аутентификации
CATEGORY_TRANSPORT Управление транспортировкой мультимедиа для воспроизведения
CATEGORY_SYSTEM Обновление статуса системы или устройства. Зарезервировано для использования системой.
CATEGORY_SERVICE Индикация запущенной фоновой службы
CATEGORY_RECOMMENDATION Конкретная своевременная рекомендация для чего-то одного. Например, новостное приложение может рекомендовать новостную статью, которую пользователь захочет прочитать следующей.
CATEGORY_STATUS Текущая информация о состоянии устройства или контекста

Уведомления на экране блокировки

Если пользователь выбрал показ уведомлений при заблокированном экране, эти уведомления могут скрыть любой контент, который ваше приложение помечает как конфиденциальный. Android оценивает уровень видимости каждого уведомления, чтобы определить, что можно безопасно показывать.

Установить уровень чувствительности для контента на экранах блокировки

Конфиденциальность пользователя критически важна, поэтому имейте в виду, что существуют различные уровни уведомлений, которые могут быть видны на экране блокировки. Для каждого создаваемого вами уведомления необходимо установить уровень видимости: public, private или secret .

  • Публичные уведомления полностью видны на защищенных экранах блокировки.
  • Секретные уведомления скрыты.
  • Частные уведомления находятся посередине: они показывают только основную информацию, включая название приложения, которое их опубликовало, и его значок. Вместо обычного контента, который скрыт, вы можете опционально показывать текст, который не раскрывает личную информацию, например, 2 new messages .

В следующем примере уведомления на экране блокировки для приложений Gmail и Photos показывают весь контент после того, как пользователь выбрал отображение этой информации на экране блокировки.

Рисунок 21: Экран блокировки с разными уровнями чувствительности.

1 Все содержимое уведомлений отображается на экране блокировки

2 Конфиденциальное содержимое уведомлений скрыто на экране блокировки

Стиль

Ясный и краткий текст

Android обрезает заголовки контента до одной строки (даже при их раскрытии).

Хорошее название контента соответствует следующим правилам:

  • Не превышает 30 символов
  • Содержит самую важную информацию
  • Избегает переменных (если только они не содержат число или короткую текстовую строку или им не предшествует текст)
  • Исключает название приложения, которое уже указано в заголовке.
Отображайте название приложения в заголовке контента, так как оно избыточно по сравнению с областью заголовка и использует доступные символы.
Покажите самую важную информацию в заголовке контента.

Хороший текстовый контент соответствует следующим принципам:

  • Позволяет избежать превышения лимита в 40 символов.
  • Избегает повторения того, что указано в заголовке контента

Большой значок

Используйте большую иконку для случаев, когда изображение осмысленно усиливает содержание уведомления. Вот несколько примеров:

  • Сообщения от другого человека, например, изображение того, кто отправляет сообщение
  • Источник контента, если он отличается от приложения, отправляющего уведомление, например логотип канала YouTube, на который подписан пользователь.
  • Значимые символы в уведомлении, например, символ стрелки для указания направления движения

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

Используйте большой значок для брендинга.
Используйте большой значок, чтобы подчеркнуть содержание уведомления значимым образом, например, отобразить фотографию человека, прикрепленную к уведомлению о сообщении.

Обновления версии Android

Пользовательский интерфейс системы уведомлений Android и API, связанные с уведомлениями, постоянно развиваются. Список этих изменений см. в разделе « Совместимость уведомлений» .

Соображения относительно платформы

Носить

Если у пользователя есть сопряженное устройство Wear OS, все ваши уведомления появляются там автоматически, включая раскрывающиеся подробности и кнопки действий. Подробности см. на странице дизайна уведомлений на Wear .

,

Уведомления предоставляют краткую, своевременную и актуальную информацию, связанную с вашим приложением, когда оно не используется.

Android OS контролирует многие аспекты уведомлений, но вы можете контролировать другие аспекты. Выполните следующие шаги при внедрении уведомлений:

  1. Понять структуру уведомления.
  2. Выберите тип уведомления для вашего варианта использования.
  3. Установите категорию уведомлений, соответствующую выбранному вами типу уведомлений.

Выносы

  • Подумайте о цели уведомления: почему вы оповещаете своих пользователей?
  • Определите схему разрешений на отправку уведомлений, подумайте, насколько важны уведомления для вашего приложения и на каком этапе пути пользователя следует задать вопрос.
  • Выберите шаблон уведомления.
  • Создать содержимое уведомления:
    • Текст заголовка должен кратко излагать суть уведомления.
    • Текст содержимого должен предварительно просматриваться в уведомлении.
    • Содержимое изображения, если оно применимо к содержанию вашего приложения.
    • Медиа-картинка и метаданные для медиа-шаблона.
  • Сделайте очевидным, что пользователь может сделать с уведомлением, предоставив действия на основе его содержимого с помощью текстовых кнопок, ввода текста или элементов управления мультимедиа.
  • Добавьте значок вашего приложения и задайте цвет фона значка приложения.
  • Установите каналы и категории для ваших уведомлений. Это позволяет системе и вашему пользователю настраивать, какие уведомления они получают, и обеспечивает приоритетное поведение.
  • Если ваше приложение может отправлять несколько уведомлений одновременно, группируйте уведомления.
  • Шаблоны уведомлений можно найти в Android UI Kit на Figma .

Анатомия уведомления

Уведомления разработаны для того, чтобы облегчить сканирование и использование наиболее важных элементов уведомления. Эти элементы:

  • Первичное содержимое : это наиболее заметный элемент уведомления. Вторичная информация, такая как временная метка, меньше и консолидирована над первичным содержимым.
  • Люди : если в уведомлении упоминается человек, аватар будет выделяться на фоне остального контента.
  • Действия : пользователи могут развернуть уведомления, нажав на значок индикатора. Действия отображаются с текстовыми метками на отдельном цвете фона и в отдельном месте.
Рисунок 1: Свернутое уведомление

Заголовок и содержание уведомления

В свернутом виде уведомление показывает значок приложения, текст заголовка, временную метку, индикатор развертывания и текст содержимого. Также может опционально отображаться большой значок.

Рисунок 2: Область заголовка уведомления

1 Значок приложения: Значок приложения — это двухмерное представление идентификатора вашего приложения. Он отображается в монохромном виде в строке состояния. Если ваше приложение отправляет широкий спектр уведомлений, рассмотрите возможность замены значка приложения на символ, чтобы различать различные типы уведомлений. Подробнее см. в разделе Применение цвета значка .

2 Текст заголовка: краткий заголовок уведомления или источника, например имя учетной записи для пользователей. Контент является наиболее заметным элементом уведомления.

3 Временная метка: указывает, когда было отправлено уведомление, например, время пропущенного вызова.

4 Индикатор раскрытия: указывает, находится ли уведомление в свернутом или развернутом состоянии.

5 Текст содержания: вспомогательная информация.

6 Большой значок (необязательно): можно добавить изображение, чтобы подчеркнуть значимость уведомления, например, сообщение, включающее аватар отправителя.

Применить цвет значка

Начиная с Android 12 (API level 31) система извлекает цвет значка из цвета уведомления, установленного вами в приложении. Если приложение не устанавливает цвет, оно использует цвет темы системы. Ранее цвет был серым.

Рисунок 3: Результирующий стилизованный цвет значка приложения

Для большинства стилей система применяет этот цвет только в том случае, если уведомление предназначено для уведомления службы переднего плана. Однако для уведомлений MediaStyle и DecoratedMediaCustomViewStyle , имеющих прикрепленный сеанс мультимедиа, такого требования нет.

В следующем фрагменте показано, как применить цвет значка.

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

Действия уведомления

Рисунок 4: Область действия уведомления

1 Действия текстовой кнопки

2 заполненные кнопки действий

3 предложенных ответа

4 Поле для текста ответа

Начиная с Android 7.0 (уровень API 24) система показывает действия без иконок, чтобы вместить больше текста. Для поддержки устройств Android Wear и устройств под управлением Android 6.0 (уровень API 23) и ниже ваше приложение все равно должно предоставлять иконку.

Расширенные просмотры

Вы можете использовать расширенный вид, чтобы отобразить пользователю больше информации, не выходя из уведомления.

При развертывании уведомление может содержать до трех любых из следующих видов действий:

  • Предложенные ответы
  • Выделенные действия (кнопки в форме таблеток)
  • Стандартные текстовые действия
Включите текстовые действия, которые дублируют поведение при нажатии на текст уведомления.
Дайте пользователю возможность взаимодействовать с уведомлением. Приложение Google Clock показывает работающий таймер, но позволяет пользователю приостановить его или добавить минуту прямо из уведомления.

Включить уведомления о вводе текста

Вы позволяете пользователю вводить текст непосредственно в уведомление, включив действие «Ответить». Это предназначено для ввода небольшого количества текста, например, ответа на текстовое сообщение или краткой заметки.

Для ввода более длинного текста перенаправьте пользователей в ваше приложение, чтобы предоставить им больше места для просмотра и редактирования текста.

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

Рисунок 5: Пользователь отвечает непосредственно в приложении «Сообщения Android», не выходя из уведомления после нажатия «Ответить»

Выберите тип уведомления в зависимости от вашего варианта использования.

Google использует следующие шаблоны уведомлений в своих приложениях Android. Эти шаблоны можно в некоторой степени настроить для вашего приложения.

Шаблоны уведомлений можно найти в Android UI Kit на Figma.

Стандартный шаблон

Стандартный шаблон подходит для большинства уведомлений, позволяя использовать краткий текст, большой значок (если применимо) и действия.

Рисунок 6: Стандартный шаблон уведомления

Большой текстовый шаблон

Шаблон большого текста идеально подходит для отображения блоков более длинного текста. Он позволяет пользователю просматривать больше текста после того, как он развернет уведомление.

Рисунок 7: Большой текстовый шаблон с опцией большого значка

Шаблон большой картины

Шаблон большой картинки предназначен для уведомлений, содержащих изображение. В свернутом виде уведомление показывает большую иконку миниатюры картинки. В развернутом виде уведомление показывает гораздо более крупный предварительный просмотр.

Рисунок 8: Шаблон общей картины

Шаблон прогресса

Шаблон прогресса предназначен для действий, инициированных пользователем, которые требуют времени для завершения. При развертывании уведомление, использующее этот шаблон, показывает полосу прогресса, а также включает действие «отменить», которое позволяет пользователю прекратить это действие. (Неотменяемые действия не требуют уведомлений.)

Рисунок 9: Шаблон прогресса

Медиа-шаблон

Шаблон мультимедиа предназначен для того, чтобы позволить пользователю управлять воспроизводимым в данный момент мультимедиа из приложения.

  • В свернутом виде уведомление может отображать до трех действий. Большой значок может отображать связанное изображение, например обложку альбома.
  • При развертывании уведомление отображает до пяти действий с большим изображением или шесть действий без изображения. Фон и другие элементы уведомления автоматически наследуют цвета изображения.
Рисунок 10: Медиа-шаблон

Шаблон сообщения

Шаблон MessagingStyle предназначен для общения в реальном времени. При развертывании уведомление с использованием этого шаблона позволяет пользователю отвечать на сообщения из уведомления.

Рисунок 11: Шаблон сообщения

Шаблон вызова

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

Рисунок 12: Шаблон вызова

Шаблон живых обновлений

Обновления в реальном времени предоставляют сводку важных обновлений, чтобы пользователи могли отслеживать прогресс, не открывая приложение. Пользователи могут временно отклонить или понизить статус уведомления об обновлении в реальном времени до стандартного уведомления. Уведомления об обновлении в реальном времени должны следовать принципам уведомлений для предоставления краткой, своевременной и релевантной информации.

Рисунок 13: Шаблон «Обновления в реальном времени»
Используйте обновления в реальном времени для конечных или отслеживаемых событий, инициированных пользователем.
Используйте обновления в режиме реального времени, если четкого времени окончания действия уведомления нет.

Обновления в реальном времени не работают должным образом в следующих ситуациях:

  • Если информация в уведомлении объединена из нескольких приложений.
  • Если уведомление предназначено для предоставления рекомендаций пользователям.
  • Если для коммуникации требуются специальные визуальные эффекты, анимация или уникальные структуры данных.

Разрешения на уведомления

Несмотря на всю актуальность и своевременность уведомлений, большинство из них не являются исключениями , то есть пользователь должен дать согласие на получение уведомлений от вашего приложения.

Из этого правила есть одно исключение: начиная с Android 13 (API уровня 33) сеансы мультимедиа и приложения, управляющие телефонными звонками, освобождены от необходимости запрашивать согласие пользователя. Существующие ранее приложения также могут быть приемлемыми, если у пользователя уже включены уведомления. Подробнее см. в разделе Исключения .

Мы настоятельно рекомендуем, чтобы ваше приложение предоставляло параметры уведомлений в настройках, чтобы пользователи могли обновлять свои предпочтения в отношении уведомлений .

Позвольте пользователю принять участие в не освобожденных уведомлениях

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

Рисунок 14: Запрашивая согласие пользователя на не освобожденное уведомление

Подождите, чтобы показать подсказку диалога уведомлений:

  • Опишите уведомления о льготах, и результат не предоставления разрешений на уведомления.
  • Предоставьте контекстный пользовательский интерфейс, связывающий уведомление о его функциях или то, что он влияет на.
  • Не показывайте диалог разрешения уведомления, если пользователь отклонил пользовательский интерфейс.

Начиная с Android 13, пользователи могут быть повторно выдвинуты для разрешений уведомлений.

Требуемые уведомления

Службы переднего плана выполняют операции, которые заметны для пользователя, но хотя они не взаимодействуют с вашим приложением.

Рисунок 15: Пример уведомления о службе Fitness App

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

В следующем примере показано уведомление из приложения для фитнеса.

Когда не использовать уведомление

Не используйте уведомления для любого из следующих вариантов использования:

  • Для перекрестного проживания или рекламы другого продукта (это строго запрещено Play Store)
  • Если пользователь никогда не открыл ваше приложение
  • Как основной метод общения с пользователями
  • Чтобы побудить пользователя вернуться в приложение, но не предоставлять прямую ценность (например, «давно не видел вас!»)
  • Для запросов оценить ваше приложение
  • Для операций, которые не требуют участия пользователей, таких как синхронизация информации
  • Чтобы объявить об ошибке, приложение может восстановиться без взаимодействия с пользователем
  • Для праздников или сообщений на день рождения
Отправьте праздничные или поздравительные поздравительные поздравительные приветствия в виде уведомлений.
Преломление пользователя в середине задачи с единственной целью спросить, выполняете ли вы хорошую работу.

Поведение

Помните о следующем поведении уведомлений и о том, как справиться с ними в определенных контекстах.

Уведомление о прибытии

Когда приходит уведомление, Android добавляет его в ящик уведомлений.

  • Издавать звук или вызвать вибрацию телефона.
  • Отображение в строке состояния с значком;
  • Отображение в качестве уведомления о головах, заглядывая на текущий экран, чтобы привлечь внимание пользователя.

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

Рисунок 16: Прибытие уведомлений

1 Индикатор уведомления в строке состояния, указывающий, что в ящике уведомлений есть уведомление.

2 Уведомление «Посмотреть» на текущем экране, чтобы привлечь внимание пользователя в середине задачи.

Ящик уведомлений

Ящик уведомлений в Android обычно показывает уведомления в обратном хронологическом порядке, при этом на корректировки влияют следующие условия:

  • Приложение приложения приложения приложение или важность уведомления
  • Уведомление о том, предупредило ли уведомления пользователя звуком или вибрацией
  • Любые люди, привязанные к уведомлению и являются ли они с звездными контактами
  • Представляет ли уведомление важной постоянной деятельности, такой как телефонное звонок или воспроизведение музыки
  • Изменения появления некоторых уведомлений ОС Android в верхней и нижней части списка, добавив акцент или Deemphasis, что помогает пользователю сканировать содержание сканирования

Обрабатывать устаревшие уведомления

Ящик уведомлений предназначен для того, чтобы показать информацию пользователей, которая имеет отношение к текущему моменту времени.

Рисунок 17: Только что приготовленный текст появляется в верхней части ящика уведомлений, с более низким приоритетным уведомлением о добавленной фотографии внизу внизу

Новые уведомления, указанные значком приложения

В поддерживаемых пусковых установках на устройствах под управлением Android 8.0 (API -уровень 26) и значки приложений отображают точку уведомления , чтобы указать, что приложение имеет новое уведомление, связанное с ним.

Рисунок 18: Уведомление DOT на значке приложения, указывая на то, что приложение имеет новое уведомление, связанное с ним

Действия, которые пользователи могут выполнять с уведомлениями

Уведомления могут позволить пользователям выполнять любое из следующих действий:

  • Перейдите к пункту назначения: для навигации пользователь может нажать уведомление.

    Когда пользователь вызывает уведомление, ваше приложение должно отображать пользовательский интерфейс, который напрямую связан с этим уведомлением и позволяет пользователю предпринять немедленные действия.

  • См. Расширенное представление о уведомлении: в заголовке появляется индикатор расширения.

    Рисунок 19: Расширенное уведомление
  • Отбросьте уведомление (если разрешено): пользователь может отклонить его, проведя его влево или вправо.

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

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

  • Управление аналогичными уведомлениями в будущем: пользователи могут получить доступ к элементам управления уведомлениями по:

    • Прикосновение и удержание индивидуального уведомления
    • Свигая уведомление влево или вправо, а затем нажав на значок настроек

Отображаемые элементы управления варьируются в зависимости от версии Android и имеют ли приложение каналы для его уведомлений (начиная с Android 8.0).

Группируйте множественные уведомления

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

Ваше приложение может представлять несколько уведомлений в соответствии со следующей иерархией.

  • У уведомлений о родительстве отображается краткое изложение своих уведомлений о детских уведомлениях.
  • Если пользователь расширяет родительское уведомление, Android раскрывает все уведомления о детских.
  • Пользователь может расширить уведомление о ребенке, чтобы раскрыть весь его контент.

Android представляет уведомления о детских частях без дублирования информации о заголовке.

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

Рисунок 20: сгруппированные уведомления рухнули и расширили представления.

Настройки

Каналы

Начиная с Android 8.0 (уровень API 26), все уведомления должны быть назначены на канал.

Для получения подробной информации о том, как это реализовать, см. Create and Manage Natification каналы .

Важность должна быть выбрана с учетом времени и внимания пользователя.

Важность Поведение Использование Примеры
HIGH Издает звук и появляется на экране Критическая информация, которую пользователь должен знать или действовать немедленно, немедленно Текстовые сообщения, тревоги, телефонные звонки
DEFAULT Издает звук Информация, которая должна быть замечена в самом раннем удобстве пользователя, но не прерывать то, что они делают Оповещения о трафике, напоминания о задаче
LOW Нет звука Каналы уведомления, которые не соответствуют требованиям других уровней важности Новый контент, на который пользователь подписался, приглашения социальной сети
MIN Нет звука или визуального прерывания Несущественная информация, которая может ждать или не имеет особого отношения к пользователю Близлежащие интересные места, погода, рекламное содержание

Предопределенные категории

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

Категория Описание
CATEGORY_CALL Входящий звонок (голос или видео) или аналогичный синхронный запрос общения
CATEGORY_MESSAGE Входящее прямое сообщение (смс, мгновенное сообщение и т. Д.)
CATEGORY_EMAIL Асинхронное массовое сообщение (электронная почта)
CATEGORY_EVENT Календарь событий
CATEGORY_PROMO Продвижение или реклама
CATEGORY_ALARM Тревога или таймер
CATEGORY_PROGRESS Прогресс длительной фоновой операции
CATEGORY_SOCIAL Социальная сеть или обновление обмена
CATEGORY_ERROR Ошибка в фоновой работе или статусе аутентификации
CATEGORY_TRANSPORT Управление транспортом медиа -транспорта для воспроизведения
CATEGORY_SYSTEM Обновление состояния системы или устройства зарезервировано для использования системы.
CATEGORY_SERVICE Индикация работы с фоновым обслуживанием
CATEGORY_RECOMMENDATION Например, конкретная, своевременная рекомендация для одной вещи.
CATEGORY_STATUS Постоянная информация о устройстве или контекстуальном статусе

Уведомления на экране блокировки

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

Установить уровень чувствительности для контента на экранах блокировки

Конфиденциальность пользователя важно, поэтому имейте в виду , что существуют разные уровни уведомления, которые могут быть видны на экране блокировки.

  • Общественные уведомления полностью видны на безопасных экранах блокировки.
  • Секретные уведомления скрыты.
  • Частные уведомления падают в середине: они показывают только основную информацию, включая название приложения, которое опубликовало его и его 2 new messages .

В следующем примере уведомления о экране блокировки для приложений Gmail и Photos показывают весь контент после того, как пользователь решил показать эту информацию на экране блокировки.

Рисунок 21: Экран блокировки с различными уровнями чувствительности.

1 Все содержимое уведомления, показанное на экране блокировки

2 чувствительное содержимое уведомления, спрятанное на экране блокировки

Стиль

Чистый и краткий текст

Android усекает названия контента на одну строку (даже при расширенном).

Хороший заголовок контента придерживается следующих руководящих принципов:

  • Не превышает 30 символов
  • Содержит самую важную информацию
  • Избегать переменных (если они не содержат численного или короткой текстовой строки или предшествует текст)
  • Исключает имя приложения, которое уже появляется в заголовке
Показать имя приложения в заголовке контента, которое избыточно в области заголовка и использует доступные символы.
Показать самую важную информацию в заголовке контента.

Хороший текст контента придерживается следующих руководящих принципов:

  • Избегает превышения предела 40-характера
  • Избегает повторять то, что находится в заголовке контента

Большая икона

Используйте большой значок для вариантов использования, в которых изображения осмысленно усиливают содержание уведомления.

  • Сообщение от другого человека, например, изображение кого -то, отправляющего сообщение
  • Источник контента, если он отличается от приложения, отправляющего уведомление, например, логотип из канала YouTube, пользователь подписан на
  • Значимые символы о уведомлении, такие как символ стрелки для указаний вождения

Большие иконы должны быть круглыми, когда показывают человека, но квадрат во всех других случаях.

Используйте большой значок для брендинга.
Используйте большой значок, чтобы укреплять содержание уведомления значимо, например, фотография отображающего человека, прикрепленную к сообщению.

Обновления версии Android

Пользовательский интерфейс уведомлений Android и API, связанные с уведомлением , постоянно развиваются.

Платформы соображения

Носить

Если пользователь имеет парное устройство ОС износа , все ваши уведомления появляются автоматически, включая расширяемые детали и кнопки действий.

,

Уведомления предоставляют краткую, своевременную и соответствующую информацию, связанную с вашим приложением, когда оно не используется.

ОС Android контролирует многие аспекты уведомлений, но вы контролируете другие аспекты.

  1. Понять анатомию уведомления.
  2. Выберите тип уведомления для вашего варианта использования.
  3. Установите категорию уведомлений, которая соответствует типу выбранного вами уведомления.

Выносы

  • Рассмотрим цель уведомления: почему вы предупреждаете своих пользователей?
  • Определите шаблон разрешения уведомления, подумайте, насколько важны уведомления для вашего приложения и где спросить в путешествии вашего пользователя.
  • Выберите свой шаблон уведомления.
  • Создать контент уведомлений:
    • Текст заголовка должен кратко суммировать уведомление.
    • Текст контента должен предварительно просмотреть уведомление.
    • Содержание изображения, если применимо к контенту вашего приложения.
    • Media Kecart и метаданные для шаблона медиа.
  • Сделайте очевидным, что ваш пользователь может сделать с уведомлением, предоставляя действия на основе их контента либо с помощью текстовых кнопок, печати или элементов управления носителем.
  • Включите значок приложения и установите цвет фона значка приложения.
  • Установите каналы и категории для ваших уведомлений.
  • Если ваше приложение может дать несколько уведомлений одновременно, групповые уведомления.
  • Проверьте набор пользовательского интерфейса Android на фигме для шаблонов уведомлений.

Анатомия уведомления

Уведомления предназначены для того, чтобы облегчить сканирование и использовать наиболее важные элементы уведомления.

  • Основное содержание : это является наиболее заметным элементом уведомления.
  • Люди : Если в уведомлении участвует человек, аватар выделяется из остальной части контента.
  • Действия : Пользователи могут расширить уведомления, нажав на значок индикатора.
Рисунок 1: Уведомление об рухнике

Заголовок уведомления и содержание

При обрушении уведомление показывает значок приложения, текст заголовка, метка времени, индикатор разверните и текст содержимого.

Рисунок 2: Область заголовка уведомлений

1 Значок приложения: значок приложения-это двумерное представление идентификации вашего приложения .

2 Текст заголовка: Краткий заголовок для уведомления или источника, такого как имя учетной записи для пользователей.

3 TimeStamp: указывает, когда было отправлено уведомление, например, время пропущенного вызова.

4 Индикатор расширения: указывает, находится ли уведомление в разрушенном или расширенном состоянии.

5 Текст контента: подтверждающая информация.

6 Большой значок (необязательно): изображение может быть добавлено для уведомления уведомления значимым способом, таким как сообщение, которое включает аватар отправителя.

Применить цвет значков

Начиная с Android 12 (API -уровень 31), система получает цвет значков из цвета уведомления, который вы устанавливаете в приложении.

Рисунок 3: Полученные стилизованные значки приложения

Для большинства стилей система применяет этот MediaStyle только в том случае, если уведомление предназначено для уведомления о службе переднего DecoratedMediaCustomViewStyle .

Следующий фрагмент показывает, как применить цвет значков.

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

Действия уведомления

Рисунок 4: Область действия уведомления

1 Действия текстовой кнопки

2 кнопки заполненных действий

3 предлагаемые ответы

4 Ответить текстовое поле

Начиная с Android 7.0 (уровень API 24), система показывает действия без значков для размещения большего количества текста.

Расширенные взгляды

Вы можете использовать расширенное представление, чтобы отобразить дополнительную информацию пользователю, не выходя из уведомления.

При расширении уведомление может предоставить до трех из следующих видов действий:

  • Предложенные ответы
  • Подчеркнутые действия (кнопки в форме таблеток)
  • Стандартные текстовые действия
Включите текстовые действия, которые дублируют поведение нажатия на тело уведомления.
Дайте пользователю возможность взаимодействовать с уведомлением.

Включить набор в уведомлениях

Вы позволяете пользователю ввести непосредственно в уведомление, включив в ответ на ответ на ввод небольшого количества текста, например, ответа на текстовое сообщение или запись краткой заметки.

Для получения более длительной печати перейдите по пользователям в ваше приложение, чтобы предоставить им больше места для просмотра и редактирования текста.

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

Рисунок 5: Пользователь, отвечающий непосредственно в сообщениях Android, не оставляя уведомления после постукивания ответа

Выберите тип уведомления в зависимости от вашего варианта использования

Google использует следующие шаблоны уведомлений в своих приложениях Android.

Проверьте набор пользовательского интерфейса Android на фигме для шаблонов уведомлений.

Стандартный шаблон

Стандартный шаблон подходит для большинства уведомлений, позволяя кратко текст, большой значок (когда это применимо) и действия.

Рисунок 6: Стандартный шаблон уведомления

Большой текстовый шаблон

Большой текстовый шаблон идеально подходит для отображения блоков более длинного текста.

Рисунок 7: Большой текстовый шаблон, с вариантом большой значок

Шаблон большой картины

Шаблон большой картины предназначен для уведомлений, содержащих изображение.

Рисунок 8: Шаблон большой картины

Шаблон прогресса

Шаблон прогресса предназначен для деятельности, имитационных, которые требуют времени.

Рисунок 9: Шаблон прогресса

Шаблон медиа

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

  • При разрушении уведомление может отображать до трех действий.
  • При расширении уведомление отображает до пяти действий с большим изображением или шестью действиями без изображения.
Рисунок 10: Шаблон мультимедиа

Шаблон обмена сообщениями

Шаблон обмена сообщениями предназначен для общения в реальном времени.

Рисунок 11: Шаблон обмена сообщениями

Вызовать шаблон

Используйте шаблон Callstyle , чтобы генерировать уведомления с большими форматами, которые включают в себя большое прикрепление изображения и указывают на входящий или исходящий вызов.

Рисунок 12: Шаблон вызова

Живой шаблон обновлений

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

Рисунок 13: Шаблон живых обновлений
Используйте живые обновления для конечного или отслеживаемого опыта, инициированного пользователем.
Используйте живые обновления, если нет четкого времени окончания уведомления.

Живые обновления не работают в следующих ситуациях:

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

Разрешения уведомления

Какими бы релевантными и своевременными могут быть уведомления, большинство уведомлений не являются освобожденными , то есть пользователь должен согласиться на получение уведомлений из вашего приложения.

Существует одно исключение из этого: начиная с Android 13 (API-уровни 33), сеансы медиа-сессии и приложения, которые управляют телефонными звонками, освобождаются от запроса согласия пользователя.

Мы настоятельно рекомендуем, чтобы ваше приложение предоставило параметры уведомлений в настройках, чтобы пользователи могли обновлять свои уведомления .

Позвольте пользователю принять участие в не освобожденных уведомлениях

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

Рисунок 14: Запрашивая согласие пользователя на не освобожденное уведомление

Подождите, чтобы показать подсказку диалога уведомлений:

  • Опишите уведомления о льготах, и результат не предоставления разрешений на уведомления.
  • Предоставьте контекстный пользовательский интерфейс, связывающий уведомление о его функциях или то, что он влияет на.
  • Не показывайте диалог разрешения уведомления, если пользователь отклонил пользовательский интерфейс.

Начиная с Android 13, пользователи могут быть повторно выдвинуты для разрешений уведомлений.

Требуемые уведомления

Службы переднего плана выполняют операции, которые заметны для пользователя, но хотя они не взаимодействуют с вашим приложением.

Рисунок 15: Пример уведомления о службе Fitness App

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

В следующем примере показано уведомление из приложения для фитнеса.

Когда не использовать уведомление

Не используйте уведомления для любого из следующих вариантов использования:

  • Для перекрестного проживания или рекламы другого продукта (это строго запрещено Play Store)
  • Если пользователь никогда не открыл ваше приложение
  • Как основной метод общения с пользователями
  • Чтобы побудить пользователя вернуться в приложение, но не предоставлять прямую ценность (например, «давно не видел вас!»)
  • Для запросов оценить ваше приложение
  • Для операций, которые не требуют участия пользователей, таких как синхронизация информации
  • Чтобы объявить об ошибке, приложение может восстановиться без взаимодействия с пользователем
  • Для праздников или сообщений на день рождения
Отправьте праздничные или поздравительные поздравительные поздравительные приветствия в виде уведомлений.
Преломление пользователя в середине задачи с единственной целью спросить, выполняете ли вы хорошую работу.

Поведение

Помните о следующем поведении уведомлений и о том, как справиться с ними в определенных контекстах.

Уведомление о прибытии

Когда приходит уведомление, Android добавляет его в ящик уведомлений.

  • Издавать звук или вызвать вибрацию телефона.
  • Отображение в строке состояния с значком;
  • Отображение в качестве уведомления о головах, заглядывая на текущий экран, чтобы привлечь внимание пользователя.

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

Рисунок 16: Прибытие уведомлений

1 Индикатор уведомления в строке состояния, указывающий, что в ящике уведомлений есть уведомление.

2 Уведомление «Посмотреть» на текущем экране, чтобы привлечь внимание пользователя в середине задачи.

Ящик уведомлений

Ящик уведомлений в Android обычно показывает уведомления в обратном хронологическом порядке, при этом на корректировки влияют следующие условия:

  • Приложение приложения приложения приложение или важность уведомления
  • Уведомление о том, предупредило ли уведомления пользователя звуком или вибрацией
  • Любые люди, привязанные к уведомлению и являются ли они с звездными контактами
  • Представляет ли уведомление важной постоянной деятельности, такой как телефонное звонок или воспроизведение музыки
  • Изменения появления некоторых уведомлений ОС Android в верхней и нижней части списка, добавив акцент или Deemphasis, что помогает пользователю сканировать содержание сканирования

Обрабатывать устаревшие уведомления

Ящик уведомлений предназначен для того, чтобы показать информацию пользователей, которая имеет отношение к текущему моменту времени.

Рисунок 17: Только что приготовленный текст появляется в верхней части ящика уведомлений, с более низким приоритетным уведомлением о добавленной фотографии внизу внизу

Новые уведомления, указанные значком приложения

В поддерживаемых пусковых установках на устройствах под управлением Android 8.0 (API -уровень 26) и значки приложений отображают точку уведомления , чтобы указать, что приложение имеет новое уведомление, связанное с ним.

Рисунок 18: Уведомление DOT на значке приложения, указывая на то, что приложение имеет новое уведомление, связанное с ним

Действия, которые пользователи могут выполнять с уведомлениями

Уведомления могут позволить пользователям выполнять любое из следующих действий:

  • Перейдите к пункту назначения: для навигации пользователь может нажать уведомление.

    Когда пользователь вызывает уведомление, ваше приложение должно отображать пользовательский интерфейс, который напрямую связан с этим уведомлением и позволяет пользователю предпринять немедленные действия.

  • См. Расширенное представление о уведомлении: в заголовке появляется индикатор расширения.

    Рисунок 19: Расширенное уведомление
  • Отбросьте уведомление (если разрешено): пользователь может отклонить его, проведя его влево или вправо.

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

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

  • Управление аналогичными уведомлениями в будущем: пользователи могут получить доступ к элементам управления уведомлениями по:

    • Прикосновение и удержание индивидуального уведомления
    • Свигая уведомление влево или вправо, а затем нажав на значок настроек

Отображаемые элементы управления варьируются в зависимости от версии Android и имеют ли приложение каналы для его уведомлений (начиная с Android 8.0).

Группируйте множественные уведомления

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

Ваше приложение может представлять несколько уведомлений в соответствии со следующей иерархией.

  • У уведомлений о родительстве отображается краткое изложение своих уведомлений о детских уведомлениях.
  • Если пользователь расширяет родительское уведомление, Android раскрывает все уведомления о детских.
  • Пользователь может расширить уведомление о ребенке, чтобы раскрыть весь его контент.

Android представляет уведомления о детских частях без дублирования информации о заголовке.

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

Рисунок 20: сгруппированные уведомления рухнули и расширили представления.

Настройки

Каналы

Начиная с Android 8.0 (уровень API 26), все уведомления должны быть назначены на канал.

Для получения подробной информации о том, как это реализовать, см. Create and Manage Natification каналы .

Важность должна быть выбрана с учетом времени и внимания пользователя.

Важность Поведение Использование Примеры
HIGH Издает звук и появляется на экране Критическая информация, которую пользователь должен знать или действовать немедленно, немедленно Текстовые сообщения, тревоги, телефонные звонки
DEFAULT Издает звук Информация, которая должна быть замечена в самом раннем удобстве пользователя, но не прерывать то, что они делают Оповещения о трафике, напоминания о задаче
LOW Нет звука Каналы уведомления, которые не соответствуют требованиям других уровней важности Новый контент, на который пользователь подписался, приглашения социальной сети
MIN Нет звука или визуального прерывания Несущественная информация, которая может ждать или не имеет особого отношения к пользователю Близлежащие интересные места, погода, рекламное содержание

Предопределенные категории

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

Категория Описание
CATEGORY_CALL Входящий звонок (голос или видео) или аналогичный синхронный запрос общения
CATEGORY_MESSAGE Входящее прямое сообщение (смс, мгновенное сообщение и т. Д.)
CATEGORY_EMAIL Асинхронное массовое сообщение (электронная почта)
CATEGORY_EVENT Календарь событий
CATEGORY_PROMO Продвижение или реклама
CATEGORY_ALARM Тревога или таймер
CATEGORY_PROGRESS Прогресс длительной фоновой операции
CATEGORY_SOCIAL Социальная сеть или обновление обмена
CATEGORY_ERROR Error in background operation or authentication status
CATEGORY_TRANSPORT Media transport control for playback
CATEGORY_SYSTEM System or device status update. Reserved for system use.
CATEGORY_SERVICE Indication of running background service
CATEGORY_RECOMMENDATION A specific, timely recommendation for a single thing. For example, a news app might recommend a news story the user might want to read next.
CATEGORY_STATUS Ongoing information about device or contextual status

Уведомления на экране блокировки

If a user has opted to show notifications when their screen is locked, these notifications can conceal any content that your app marks as sensitive. Android evaluates each notification's visibility level to determine what can safely be shown.

Set sensitivity level for content on lock screens

User privacy is critically important, so be aware that there are different levels of notification that can be visible on the lock screen. For each notification you create, you must set the visibility level to public, private , or secret .

  • Public notifications are fully visible on secure lock screens.
  • Secret notifications are hidden.
  • Private notifications fall in the middle: they show only basic information, including the name of the app that posted it and its icon. Instead of the regular content—which is hidden—you can optionally to show text that doesn't reveal personal information, such as 2 new messages .

In the following example, lock screen notifications for the Gmail and Photos apps show all content after the user has chosen to show this information on the lock screen.

Figure 21: Lock screen with different sensitivity levels.

1 All notification content shown on the lock screen

2 Sensitive notification content hidden on the lock screen

Стиль

Clear and concise text

Android truncates content titles to a single line (even when expanded).

A good content title adheres to the following guidelines:

  • Doesn't exceed 30 characters
  • Contains the most important information
  • Avoids variables (unless they contain a number or short text string, or are preceded by text)
  • Excludes the app's name, which already appears in the header
Show the app name in the content title, which is redundant with the header area and uses available characters.
Show the most important information in the content title.

Good content text adheres to the following guidelines:

  • Avoids exceeding the 40-character limit
  • Avoids repeating what's in the content title

The large icon

Use the large icon for use cases in which imagery meaningfully reinforces the notification's content. Some examples are:

  • Communications from another person, such as the image of someone sending a message
  • The source of content if it's different than the app sending the notification, such as the logo from a YouTube channel a user is subscribed to
  • Meaningful symbols about the notification, such as an arrow symbol for driving directions

Large icons must be circular when showing a person, but square in all other cases.

Use the large icon for branding.
Use the large icon to reinforce a notification's content in a meaningful way, such as a displaying person's photo attached to a message notification.

Android version updates

The Android notification system UI and the notification-related APIs continually evolve. For a list of these changes check out the notification compatibility .

Platform Considerations

Носить

If the user has a paired Wear OS device, all your notifications appear there automatically, including expandable detail and action buttons. For details, see the design page for notifications on Wear .

,

Notifications provide brief, timely, and relevant information related to your app when it's not in use.

The Android OS controls many aspects of notifications, but you have control over other aspects. Follow these steps when implementing notifications:

  1. Understand the anatomy of a notification.
  2. Choose the type of notification for your use case.
  3. Set the notification category that aligns with the type of notification you've chosen.

Выносы

  • Consider the purpose of the notification: why are you alerting your users?
  • Determine notification permission pattern, consider how important notifications are to your app and where to ask in your user's journey.
  • Pick your notification template.
  • Create notification content:
    • Header text should succinctly summarize the notification.
    • Content text should preview the notification.
    • Image content if applicable to your app's content.
    • Media keyart and metadata for media template.
  • Make it obvious what your user can do with a notification by providing actions based on their content either with text buttons, typing, or media controls.
  • Include your app icon and set the app icon background color.
  • Set channels and categories for your notifications. This allows the system and your user to customize what notifications they receive and provides priority behavior.
  • If your app may deliver multiple notifications at once, group notifications.
  • Check out the Android UI Kit on Figma for notification templates.

Anatomy of a notification

Notifications are designed to make it easy to scan and use a notification's most important elements. These elements are:

  • Primary content : this constitutes the most prominent element of a notification. Secondary information, such as a timestamp, is smaller and consolidated above the primary content.
  • People : if the notification involves a person, an avatar stands out from the rest of the content.
  • Actions : users can expand notifications by tapping an indicator icon. Actions are displayed with text labels on a separate background color and location.
Figure 1: Collapsed notification

Notification header and content

When collapsed, a notification shows the app icon, header text, timestamp, expand indicator, and content text. It can also optionally show a large icon.

Figure 2: Notification header area

1 App icon: The app icon is a two-dimensional representation of your app's identity. It appears in monochrome in the status bar. If your app sends a wide variety of notifications, consider replacing your app icon with a symbol to distinguish between the different kinds of notifications. See Apply the icon color for details.

2 Header text: a brief headline for the notification or source, such as the account name for users. Content is the most prominent element of a notification.

3 Timestamp: indicates when a notification was sent, such as the time of a missed call.

4 Expand indicator: indicates whether the notification is in a collapsed or expanded state.

5 Content text: supporting information.

6 Large icon (optional): An image may be added to reinforce the notification in a meaningful way, such as a message that includes an avatar of the sender.

Apply the icon color

Starting in Android 12 (API level 31), the system derives the icon color from the notification color you set in the app. If the app doesn't set the color, it uses the system theme color. Previously, the color was gray.

Figure 3: Resulting styled app icon color

For most styles, the system applies this color only if the notification is for a foreground service notification. However, there is no such requirement for MediaStyle and DecoratedMediaCustomViewStyle notifications that have a media session attached.

The following snippet shows how to apply the icon color.

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

Действия уведомления

Figure 4: Notification action area

1 Text button actions

2 Filled action buttons

3 Suggested replies

4 Reply text field

Starting with Android 7.0 (API level 24), the system shows actions without icons to accommodate more text. To accommodate Android Wear devices and devices running Android 6.0 (API level 23) and lower, your app must still provide an icon.

Expanded views

You can use an expanded view to display more information to the user without navigating away from the notification.

When expanded, a notification can provide up to three of any of the following kinds of actions:

  • Предложенные ответы
  • Emphasized actions (pill-shaped buttons)
  • Standard text actions
Include text actions that duplicate the behavior of tapping on the notification body.
Give the user a chance to interact with the notification. The Google Clock app shows a timer running, but it lets the user pause or add a minute directly from the notification.

Enable typing in notifications

You enable the user to type directly into a notification by including a Reply action. This is designed for typing a small amount of text, such as replying to a text message or jotting a brief note.

For longer-form typing, navigate users to your app to provide them more space to view and edit text.

For messaging apps, we recommend keeping the notification present after the user has sent the reply, and waiting until the conversation is paused before automatically dismissing it.

Figure 5: A user replying directly in the Android Messages without leaving the notification after tapping Reply

Choose the notification type depending on your use case

Google uses the following notification templates in its Android apps. These templates can be customized to some extent for your app.

Check out the Android UI Kit on Figma for notification templates.

Standard template

The standard template is suitable for most notifications, allowing succinct text, a large icon (when applicable), and actions.

Figure 6: Standard notification template

Big text template

The big text template is ideal for displaying blocks of longer text. It lets the user preview more text after they expand the notification.

Figure 7: Big text template, with option large icon

Big picture template

The big picture template is designed for notifications containing an image. When collapsed, the notification shows a large icon thumbnail of the picture. When expanded, the notification shows a much larger preview.

Figure 8: Big picture template

Progress template

The progress template is designed for user-initiated activities that take time to complete. When expanded, a notification that uses this template shows a progress bar and also includes a "cancel" action that lets the user terminate this activity. (Non-cancelable activities don't warrant notifications.)

Figure 9: Progress template

Media template

The media template is designed for letting the user control media currently playing from an app.

  • When collapsed, the notification can display up to three actions. The large icon can show a related image such as an album cover.
  • When expanded, the notification displays up to five actions with a larger image, or six actions with no image. The background and other elements of the notification automatically inherit the colors from the image.
Figure 10: Media template

Messaging template

The MessagingStyle template is designed for real-time communication. When expanded, a notification using this template lets the user reply to messages from within the notification.

Figure 11: Messaging template

Call template

Use the CallStyle template to generate large-format notifications that include a large image attachment and indicate an incoming or outgoing call.

Figure 12: Call template

Live updates template

Live updates provide a summary of important updates so users can track progress without opening the app. Users can temporarily dismiss or demote a live update notification to a standard notification. Live update notifications should follow notification principles for delivering brief, timely, and relevant information.

Figure 13: Live Updates template
Use live updates for finite or trackable experiences initiated by the user.
Use live updates if there is not a clear end time for the notification.

Live updates don't work well in the following situations:

  • If information in the notification is bundled from multiple applications.
  • If the notification is meant to provide recommendations to users.
  • If it requires bespoke visuals, animations, or unique data structures to communicate.

Notification permissions

As relevant and timely as notifications can be, most notifications are non-exempt , that is, the user must consent to receiving notifications from your app.

There is one exception to this: starting in Android 13 (API level 33), media sessions and apps that manage phone calls are exempt from asking for user consent. Pre-existing apps may also be eligible if the user already has notifications on. See more details in Exemptions .

We strongly recommend that your app provide notification options in settings to allow users to update their notifications preferences .

Prompt the user to opt-in to non-exempt notifications

For non-exempt notifications, prompt the user to indicate whether they want to to opt-in to receiving notifications. Users who explicitly choose to receive notifications are likely to find them more useful and less intrusive.

Figure 14: Requesting a user's consent for a non-exempt notification

Wait to show the notification dialog prompt:

  • Describe the benefits notifications provide, and the result of not granting permissions for notifications.
  • Provide contextual UI, relating the notification to its features or what it affects. This UI can take any form to integrate best within your app: for example card within a fee, bottom sheet, or onboarding screen. Any of these should be dismissable.
  • Don't show the notification permission dialog, if the user has dismissed the UI.

Starting in Android 13, users can be re-prompted for notification permissions.

Required notifications

Foreground services perform operations that are noticeable to the user but while they're not directly interacting with your app. These services show a status bar notification to make users aware that your app is performing a task in the foreground and is consuming system resources.

Figure 15: Example of fitness app foreground service notification

Because these processes use battery and possibly data, your app must make users aware of them by showing a non-dismissible notification. The user can't dismiss the notification, so you must provide an action for the user to stop the service.

The following example shows a notification from a fitness app. The user has started an active workout session, which instantiates a foreground service tracking the workout session. The app shows the notification to indicate it's tracking walking, with an option to see the workout.

When not to use a notification

Don't use notifications for any of the following use cases:

  • For cross-promotion or advertisement of another product (this is strictly prohibited by the Play Store)
  • If the user has never opened your app
  • As the primary method of communication with users
  • To encourage the user to return to an app, but provide no direct value (for example, "Haven't seen you in a while!")
  • For requests to rate your app
  • For operations that don't require user involvement, such as syncing information
  • To announce error states the app may recover from without user interaction
  • For holiday or birthday messages
Send holiday or birthday greetings in the form of notifications.
Interrupt the user in the middle of a task for the sole purpose of asking if you're doing a good job.

Поведение

Be aware of the following notification behaviors and how to handle them in certain contexts.

Notification arrival

When a notification arrives, Android adds it to the notification drawer. Depending on the parameters you set and the current state of the device, the notification may perform any of the following actions:

  • Make a sound or cause phone vibration.
  • Display in the status bar with an icon; this is typically your app icon, but if you have multiple types of notifications, use a symbol that captures the notification's purpose.
  • Display as a heads-up notification, peeking onto the current screen to grab the user's attention.

As always, the user can choose to alter the notification behaviors you set.

Figure 16: Notification arrival

1 Notification indicator in the status bar, indicating that there's a notification in the notification drawer.

2 Notification "peeking" onto the current screen to grab a user's attention in the middle of a task.

Notification drawer

The notification drawer in Android typically shows notifications in reverse-chronological order, with adjustments influenced by the following conditions:

  • The app's stated notification priority or importance
  • Whether the notification recently alerted the user with a sound or vibration
  • Any people attached to the notification and whether they are starred contacts
  • Whether the notification represents an important ongoing activity, such as a phone call in progress or music playing
  • Alterations of the appearance of some notifications by the Android OS at the top and bottom of the list by adding emphasis or deemphasis, which helps the user scan content

Handle stale notifications

The notification drawer is designed to show users information that is relevant for the current moment in time. If an earlier notification is stale , that is, no longer relevant, dismiss it so the user doesn't see it.

Figure 17: Just-arrived text appears at the top of the notification drawer, with a lower priority notification about a photo being added at the bottom

New notifications indicated by app icon badge

In supported launchers on devices running Android 8.0 (API level 26) and higher, app icons display a notification dot to indicate that the app has a new notification associated with it. These dots appear by default in launcher apps that support them, and there's nothing your app needs to do. Badging can also be disabled and limited.

Figure 18: Notification dot on an app icon, indicating the app has a new notification associated with it

Actions users can perform with notifications

Notifications can enable users to perform any of the following actions:

  • Navigate to a destination: to navigate, a user may tap a notification. If the notification displays on a locked screen, the user needs to double-tap it and then enter their PIN, pattern, or password.

    When the user taps a notification, your app must display UI that relates directly to that notification and lets the user take immediate action. For example, if the notification says it's their turn in a two-player game, tapping the notification should take them directly to that game.

  • See an expanded view of the notification: an expand indicator appears in the header. A user can tap the indicator or swipe down the notification body to expand it.

    Figure 19: Expanded notification
  • Dismiss the notification (if permitted): a user can dismiss it by swiping it left or right.

Ongoing notifications that indicate a continuing process in the background, such as music playing, may not be dismissed with a swipe.

  • Snooze a heads-up notification: a user can swipe up on a heads-up notification , and no further notifications from that event are allowed to pulse for one minute.

  • Control similar notifications in the future: users can access notification controls by:

    • Touching & holding an individual notification
    • Swiping the notification left or right, and then tapping the settings icon

The controls displayed vary depending on the Android version and whether the app has channels for its notifications (starting in Android 8.0).

Group multiple notifications

For apps that generate multiple notifications of the same type, Android offers notification grouping to avoid overwhelming users.

Your app can present multiple notifications according to the following hierarchy.

  • A parent notification displays a summary of its child notifications.
  • If the user expands the parent notification, Android reveals all child notifications.
  • A user can expand a child notification to reveal its entire content.

Android presents child notifications without duplicate header information. For example, if a child notification has the same app icon as its parent, the child's header doesn't include an icon.

Child notifications must be understandable if they appear solo, as the system may show them outside of the group when they arrive.

Figure 20: Grouped notifications collapsed and expanded views.

Настройки

Каналы

Starting in Android 8.0 (API level 26), all notifications must be assigned to a channel. For each channel, you can set the visual and auditory behavior that is applied to all notifications in that channel. Users can change these settings and decide which notification channels from your app can be intrusive or visible.

For details on how to implement this, see Create and manage notification channels .

Importance should be chosen with consideration for the user's time and attention. When an unimportant notification is disguised as urgent, it can produce unnecessary alarm.

Важность Поведение Использование Примеры
HIGH Makes a sound and appears on screen Time-critical information that the user must know, or act on, immediately Text messages, alarms, phone calls
DEFAULT Makes a sound Information that should be seen at the user's earliest convenience, but not interrupt what they're doing Traffic alerts, task reminders
LOW Нет звука Notification channels that don't meet the requirements of other importance levels New content the user has subscribed to, social network invitations
MIN No sound or visual interruption Non-essential information that can wait or isn't specifically relevant to the user Nearby places of interest, weather, promotional content

Predefined categories

Whether you're using channels or not, assign each individual notification to the most suitable predefined category. Android may use this information to make ranking and filtering decisions.

Категория Описание
CATEGORY_CALL Incoming call (voice or video) or similar synchronous communication request
CATEGORY_MESSAGE Incoming direct message (SMS, instant message, etc.)
CATEGORY_EMAIL Asynchronous bulk message (email)
CATEGORY_EVENT Календарь событий
CATEGORY_PROMO Promotion or advertisement
CATEGORY_ALARM Alarm or timer
CATEGORY_PROGRESS Progress of a long-running background operation
CATEGORY_SOCIAL Social network or sharing update
CATEGORY_ERROR Error in background operation or authentication status
CATEGORY_TRANSPORT Media transport control for playback
CATEGORY_SYSTEM System or device status update. Reserved for system use.
CATEGORY_SERVICE Indication of running background service
CATEGORY_RECOMMENDATION A specific, timely recommendation for a single thing. For example, a news app might recommend a news story the user might want to read next.
CATEGORY_STATUS Ongoing information about device or contextual status

Уведомления на экране блокировки

If a user has opted to show notifications when their screen is locked, these notifications can conceal any content that your app marks as sensitive. Android evaluates each notification's visibility level to determine what can safely be shown.

Set sensitivity level for content on lock screens

User privacy is critically important, so be aware that there are different levels of notification that can be visible on the lock screen. For each notification you create, you must set the visibility level to public, private , or secret .

  • Public notifications are fully visible on secure lock screens.
  • Secret notifications are hidden.
  • Private notifications fall in the middle: they show only basic information, including the name of the app that posted it and its icon. Instead of the regular content—which is hidden—you can optionally to show text that doesn't reveal personal information, such as 2 new messages .

In the following example, lock screen notifications for the Gmail and Photos apps show all content after the user has chosen to show this information on the lock screen.

Figure 21: Lock screen with different sensitivity levels.

1 All notification content shown on the lock screen

2 Sensitive notification content hidden on the lock screen

Стиль

Clear and concise text

Android truncates content titles to a single line (even when expanded).

A good content title adheres to the following guidelines:

  • Doesn't exceed 30 characters
  • Contains the most important information
  • Avoids variables (unless they contain a number or short text string, or are preceded by text)
  • Excludes the app's name, which already appears in the header
Show the app name in the content title, which is redundant with the header area and uses available characters.
Show the most important information in the content title.

Good content text adheres to the following guidelines:

  • Avoids exceeding the 40-character limit
  • Avoids repeating what's in the content title

The large icon

Use the large icon for use cases in which imagery meaningfully reinforces the notification's content. Some examples are:

  • Communications from another person, such as the image of someone sending a message
  • The source of content if it's different than the app sending the notification, such as the logo from a YouTube channel a user is subscribed to
  • Meaningful symbols about the notification, such as an arrow symbol for driving directions

Large icons must be circular when showing a person, but square in all other cases.

Use the large icon for branding.
Use the large icon to reinforce a notification's content in a meaningful way, such as a displaying person's photo attached to a message notification.

Android version updates

The Android notification system UI and the notification-related APIs continually evolve. For a list of these changes check out the notification compatibility .

Platform Considerations

Носить

If the user has a paired Wear OS device, all your notifications appear there automatically, including expandable detail and action buttons. For details, see the design page for notifications on Wear .