Уведомления

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

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

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

Основные выводы

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

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

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

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

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

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

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

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

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

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

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), система отображает действия без значков, чтобы вместить больше текста. Для устройств Android Wear и устройств под управлением Android 6.0 (уровень API 23) и ниже ваше приложение по-прежнему должно предоставлять значок.

Расширенные представления

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

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

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

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

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

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

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

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

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

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

Ознакомьтесь с Android UI Kit на Figma, чтобы найти шаблоны уведомлений.

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

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

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

Шаблон для большого текста

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

Рисунок 7: Шаблон для крупного текста с возможностью добавления большого значка.

Шаблон общей картины

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

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

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

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

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

Шаблон для работы с медиафайлами

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 13: Запрос согласия пользователя на уведомление, не подпадающее под исключения.

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

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

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

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

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

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

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

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

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

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

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

Поведение

Обратите внимание на следующие особенности работы уведомлений и на то, как обрабатывать их в различных контекстах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройки

Каналы

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

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

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

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

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

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

Категория Описание
CATEGORY_CALL Входящий звонок (голосовой или видео) или аналогичный запрос на синхронную связь.
CATEGORY_MESSAGE Входящие прямые сообщения (SMS, мгновенные сообщения и т. д.)
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 оценивает уровень видимости каждого уведомления, чтобы определить, что можно безопасно показать.

Настройте уровень чувствительности контента на экранах блокировки.

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

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

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

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

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

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

Стиль

Четкий и лаконичный текст

В Android заголовки контента обрезаются до одной строки (даже в развернутом виде).

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

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

Качественный контент-текст должен соответствовать следующим критериям:

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

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

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

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

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

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

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

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

Вопросы, касающиеся платформы

Носить

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