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

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

1 Значок приложения: Значок приложения — это двухмерное представление идентификатора вашего приложения. Он отображается в монохромном виде в строке состояния. Если ваше приложение отправляет широкий спектр уведомлений, рассмотрите возможность замены значка приложения на символ, чтобы различать различные типы уведомлений. Подробнее см. в разделе Применение цвета значка .
2 Текст заголовка: краткий заголовок уведомления или источника, например имя учетной записи для пользователей. Контент является наиболее заметным элементом уведомления.
3 Временная метка: указывает, когда было отправлено уведомление, например, время пропущенного вызова.
4 Индикатор раскрытия: указывает, находится ли уведомление в свернутом или развернутом состоянии.
5 Текст содержания: вспомогательная информация.
6 Большой значок (необязательно): можно добавить изображение, чтобы подчеркнуть значимость уведомления, например, сообщение, включающее аватар отправителя.
Применить цвет значка
Начиная с Android 12 (API level 31) система извлекает цвет значка из цвета уведомления, установленного вами в приложении. Если приложение не устанавливает цвет, оно использует цвет темы системы. Ранее цвет был серым.

Для большинства стилей система применяет этот цвет только в том случае, если уведомление предназначено для уведомления службы переднего плана. Однако для уведомлений MediaStyle
и DecoratedMediaCustomViewStyle
, имеющих прикрепленный сеанс мультимедиа, такого требования нет.
В следующем фрагменте показано, как применить цвет значка.
val notification = Notification.Builder()
.setColor(Color.GREEN)
.setColorized(true)
.setSmallIcon(R.drawable.app_icon)
.setStyle(Notification.DecoratedCustomViewStyle())
.build()
Действия уведомления

1 Действия текстовой кнопки
2 заполненные кнопки действий
3 предложенных ответа
4 Поле для текста ответа
Начиная с Android 7.0 (уровень API 24) система показывает действия без иконок, чтобы вместить больше текста. Для поддержки устройств Android Wear и устройств под управлением Android 6.0 (уровень API 23) и ниже ваше приложение все равно должно предоставлять иконку.
Расширенные просмотры
Вы можете использовать расширенный вид, чтобы отобразить пользователю больше информации, не выходя из уведомления.
При развертывании уведомление может содержать до трех любых из следующих видов действий:
- Предложенные ответы
- Выделенные действия (кнопки в форме таблеток)
- Стандартные текстовые действия

Не

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

Выберите тип уведомления в зависимости от вашего варианта использования.
Google использует следующие шаблоны уведомлений в своих приложениях Android. Эти шаблоны можно в некоторой степени настроить для вашего приложения.
Шаблоны уведомлений можно найти в Android UI Kit на Figma.
Стандартный шаблон
Стандартный шаблон подходит для большинства уведомлений, позволяя использовать краткий текст, большой значок (если применимо) и действия.

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

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

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

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

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

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

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


Делать

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

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

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

Не

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

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

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

Действия, которые пользователи могут выполнять с уведомлениями
Уведомления могут позволить пользователям выполнять любое из следующих действий:
Навигация к месту назначения: для навигации пользователь может нажать на уведомление. Если уведомление отображается на заблокированном экране, пользователю необходимо дважды нажать на него, а затем ввести свой PIN-код, графический ключ или пароль.
Когда пользователь нажимает на уведомление, ваше приложение должно отображать пользовательский интерфейс, который напрямую связан с этим уведомлением и позволяет пользователю предпринять немедленные действия. Например, если в уведомлении говорится, что сейчас его очередь в игре для двух игроков, нажатие на уведомление должно перенаправить его прямо в эту игру.
Посмотреть развернутый вид уведомления: в заголовке появляется индикатор развертывания. Пользователь может нажать на индикатор или провести пальцем вниз по телу уведомления, чтобы развернуть его.
Рисунок 19: Расширенное уведомление Отклонить уведомление (если разрешено): пользователь может отклонить его, проведя по нему пальцем влево или вправо.
Текущие уведомления, указывающие на продолжающийся процесс в фоновом режиме, например, воспроизведение музыки, невозможно закрыть свайпом.
Отложить уведомление: пользователь может провести пальцем вверх по уведомлению , и никакие дальнейшие уведомления об этом событии не будут отображаться в течение одной минуты.
Управляйте подобными уведомлениями в будущем: пользователи могут получить доступ к элементам управления уведомлениями следующими способами:
- Нажатие и удерживание отдельного уведомления
- Проведите по уведомлению влево или вправо, а затем нажмите значок настроек.
Отображаемые элементы управления различаются в зависимости от версии Android и наличия у приложения каналов для уведомлений (начиная с Android 8.0).
Группировать несколько уведомлений
Для приложений, которые генерируют несколько уведомлений одного типа, Android предлагает группировку уведомлений, чтобы не перегружать пользователей.
Ваше приложение может отображать несколько уведомлений в соответствии со следующей иерархией.
- Родительское уведомление отображает сводку дочерних уведомлений.
- Если пользователь разворачивает родительское уведомление, Android показывает все дочерние уведомления.
- Пользователь может развернуть дочернее уведомление, чтобы увидеть все его содержимое.
Android представляет дочерние уведомления без дублирующейся информации заголовка. Например, если дочернее уведомление имеет тот же значок приложения, что и его родительское, заголовок дочернего уведомления не будет включать значок.
Уведомления о детях должны быть понятными, если они появляются в одиночку, поскольку система может показывать их вне группы, когда они приходят.
Настройки
Каналы
Начиная с 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 показывают весь контент после того, как пользователь выбрал отображение этой информации на экране блокировки.
1 Все содержимое уведомлений отображается на экране блокировки
2 Конфиденциальное содержимое уведомлений скрыто на экране блокировки
Стиль
Ясный и краткий текст
Android обрезает заголовки контента до одной строки (даже при их раскрытии).
Хорошее название контента соответствует следующим правилам:
- Не превышает 30 символов
- Содержит самую важную информацию
- Избегает переменных (если только они не содержат число или короткую текстовую строку или им не предшествует текст)
- Исключает название приложения, которое уже указано в заголовке.

Не

Делать
Хороший текстовый контент соответствует следующим принципам:
- Позволяет избежать превышения лимита в 40 символов.
- Избегает повторения того, что указано в заголовке контента
Большой значок
Используйте большую иконку для случаев, когда изображение осмысленно усиливает содержание уведомления. Вот несколько примеров:
- Сообщения от другого человека, например, изображение того, кто отправляет сообщение
- Источник контента, если он отличается от приложения, отправляющего уведомление, например логотип канала YouTube, на который подписан пользователь.
- Значимые символы в уведомлении, например, символ стрелки для указания направления движения
Крупные значки должны быть круглыми, если на них изображен человек, и квадратными во всех остальных случаях.

Не

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

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

1 Значок приложения: Значок приложения — это двухмерное представление идентификатора вашего приложения. Он отображается в монохромном виде в строке состояния. Если ваше приложение отправляет широкий спектр уведомлений, рассмотрите возможность замены значка приложения на символ, чтобы различать различные типы уведомлений. Подробнее см. в разделе Применение цвета значка .
2 Текст заголовка: краткий заголовок уведомления или источника, например имя учетной записи для пользователей. Контент является наиболее заметным элементом уведомления.
3 Временная метка: указывает, когда было отправлено уведомление, например, время пропущенного вызова.
4 Индикатор раскрытия: указывает, находится ли уведомление в свернутом или развернутом состоянии.
5 Текст содержания: вспомогательная информация.
6 Большой значок (необязательно): можно добавить изображение, чтобы подчеркнуть значимость уведомления, например, сообщение, включающее аватар отправителя.
Применить цвет значка
Начиная с Android 12 (API level 31) система извлекает цвет значка из цвета уведомления, установленного вами в приложении. Если приложение не устанавливает цвет, оно использует цвет темы системы. Ранее цвет был серым.

Для большинства стилей система применяет этот цвет только в том случае, если уведомление предназначено для уведомления службы переднего плана. Однако для уведомлений MediaStyle
и DecoratedMediaCustomViewStyle
, имеющих прикрепленный сеанс мультимедиа, такого требования нет.
В следующем фрагменте показано, как применить цвет значка.
val notification = Notification.Builder()
.setColor(Color.GREEN)
.setColorized(true)
.setSmallIcon(R.drawable.app_icon)
.setStyle(Notification.DecoratedCustomViewStyle())
.build()
Действия уведомления

1 Действия текстовой кнопки
2 заполненные кнопки действий
3 предложенных ответа
4 Поле для текста ответа
Начиная с Android 7.0 (уровень API 24) система показывает действия без иконок, чтобы вместить больше текста. Для поддержки устройств Android Wear и устройств под управлением Android 6.0 (уровень API 23) и ниже ваше приложение все равно должно предоставлять иконку.
Расширенные просмотры
Вы можете использовать расширенный вид, чтобы отобразить пользователю больше информации, не выходя из уведомления.
При развертывании уведомление может содержать до трех любых из следующих видов действий:
- Предложенные ответы
- Выделенные действия (кнопки в форме таблеток)
- Стандартные текстовые действия

Не

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

Выберите тип уведомления в зависимости от вашего варианта использования.
Google использует следующие шаблоны уведомлений в своих приложениях Android. Эти шаблоны можно в некоторой степени настроить для вашего приложения.
Шаблоны уведомлений можно найти в Android UI Kit на Figma.
Стандартный шаблон
Стандартный шаблон подходит для большинства уведомлений, позволяя использовать краткий текст, большой значок (если применимо) и действия.

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

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

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

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

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

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

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


Делать

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

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

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

Не

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

1 Индикатор уведомления в строке состояния, указывающий, что в ящике уведомлений есть уведомление.
2 Уведомление «Посмотреть» на текущем экране, чтобы привлечь внимание пользователя в середине задачи.
Ящик уведомлений
Ящик уведомлений в Android обычно показывает уведомления в обратном хронологическом порядке, при этом на корректировки влияют следующие условия:
- Приложение приложения приложения приложение или важность уведомления
- Уведомление о том, предупредило ли уведомления пользователя звуком или вибрацией
- Любые люди, привязанные к уведомлению и являются ли они с звездными контактами
- Представляет ли уведомление важной постоянной деятельности, такой как телефонное звонок или воспроизведение музыки
- Изменения появления некоторых уведомлений ОС Android в верхней и нижней части списка, добавив акцент или Deemphasis, что помогает пользователю сканировать содержание сканирования
Обрабатывать устаревшие уведомления
Ящик уведомлений предназначен для того, чтобы показать информацию пользователей, которая имеет отношение к текущему моменту времени.

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

Действия, которые пользователи могут выполнять с уведомлениями
Уведомления могут позволить пользователям выполнять любое из следующих действий:
Перейдите к пункту назначения: для навигации пользователь может нажать уведомление.
Когда пользователь вызывает уведомление, ваше приложение должно отображать пользовательский интерфейс, который напрямую связан с этим уведомлением и позволяет пользователю предпринять немедленные действия.
См. Расширенное представление о уведомлении: в заголовке появляется индикатор расширения.
Рисунок 19: Расширенное уведомление Отбросьте уведомление (если разрешено): пользователь может отклонить его, проведя его влево или вправо.
Продолжающиеся уведомления, которые указывают на продолжающийся процесс на заднем плане, такие как воспроизведение музыки, могут не быть уволены с помощью удара.
Снам уведомление о головах: пользователь может провести уведомление о головном уведомлении , и никакие дальнейшие уведомления от этого события не разрешаются пульсировать в течение одной минуты.
Управление аналогичными уведомлениями в будущем: пользователи могут получить доступ к элементам управления уведомлениями по:
- Прикосновение и удержание индивидуального уведомления
- Свигая уведомление влево или вправо, а затем нажав на значок настроек
Отображаемые элементы управления варьируются в зависимости от версии Android и имеют ли приложение каналы для его уведомлений (начиная с Android 8.0).
Группируйте множественные уведомления
Для приложений, которые генерируют несколько уведомлений одного типа, Android предлагает группировку уведомлений, чтобы избежать подавляющих пользователей.
Ваше приложение может представлять несколько уведомлений в соответствии со следующей иерархией.
- У уведомлений о родительстве отображается краткое изложение своих уведомлений о детских уведомлениях.
- Если пользователь расширяет родительское уведомление, Android раскрывает все уведомления о детских.
- Пользователь может расширить уведомление о ребенке, чтобы раскрыть весь его контент.
Android представляет уведомления о детских частях без дублирования информации о заголовке.
Уведомления детей должны быть понятны, если они появляются в одиночку, так как система может показать их вне группы, когда они прибывают.
Настройки
Каналы
Начиная с 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 показывают весь контент после того, как пользователь решил показать эту информацию на экране блокировки.
1 Все содержимое уведомления, показанное на экране блокировки
2 чувствительное содержимое уведомления, спрятанное на экране блокировки
Стиль
Чистый и краткий текст
Android усекает названия контента на одну строку (даже при расширенном).
Хороший заголовок контента придерживается следующих руководящих принципов:
- Не превышает 30 символов
- Содержит самую важную информацию
- Избегать переменных (если они не содержат численного или короткой текстовой строки или предшествует текст)
- Исключает имя приложения, которое уже появляется в заголовке

Не

Делать
Хороший текст контента придерживается следующих руководящих принципов:
- Избегает превышения предела 40-характера
- Избегает повторять то, что находится в заголовке контента
Большая икона
Используйте большой значок для вариантов использования, в которых изображения осмысленно усиливают содержание уведомления.
- Сообщение от другого человека, например, изображение кого -то, отправляющего сообщение
- Источник контента, если он отличается от приложения, отправляющего уведомление, например, логотип из канала YouTube, пользователь подписан на
- Значимые символы о уведомлении, такие как символ стрелки для указаний вождения
Большие иконы должны быть круглыми, когда показывают человека, но квадрат во всех других случаях.

Не

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

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

1 Значок приложения: значок приложения-это двумерное представление идентификации вашего приложения .
2 Текст заголовка: Краткий заголовок для уведомления или источника, такого как имя учетной записи для пользователей.
3 TimeStamp: указывает, когда было отправлено уведомление, например, время пропущенного вызова.
4 Индикатор расширения: указывает, находится ли уведомление в разрушенном или расширенном состоянии.
5 Текст контента: подтверждающая информация.
6 Большой значок (необязательно): изображение может быть добавлено для уведомления уведомления значимым способом, таким как сообщение, которое включает аватар отправителя.
Применить цвет значков
Начиная с Android 12 (API -уровень 31), система получает цвет значков из цвета уведомления, который вы устанавливаете в приложении.

Для большинства стилей система применяет этот MediaStyle
только в том случае, если уведомление предназначено для уведомления о службе переднего DecoratedMediaCustomViewStyle
.
Следующий фрагмент показывает, как применить цвет значков.
val notification = Notification.Builder()
.setColor(Color.GREEN)
.setColorized(true)
.setSmallIcon(R.drawable.app_icon)
.setStyle(Notification.DecoratedCustomViewStyle())
.build()
Действия уведомления

1 Действия текстовой кнопки
2 кнопки заполненных действий
3 предлагаемые ответы
4 Ответить текстовое поле
Начиная с Android 7.0 (уровень API 24), система показывает действия без значков для размещения большего количества текста.
Расширенные взгляды
Вы можете использовать расширенное представление, чтобы отобразить дополнительную информацию пользователю, не выходя из уведомления.
При расширении уведомление может предоставить до трех из следующих видов действий:
- Предложенные ответы
- Подчеркнутые действия (кнопки в форме таблеток)
- Стандартные текстовые действия

Не

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

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

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

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

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

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

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

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

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


Делать

Не
Живые обновления не работают в следующих ситуациях:
- Если информация в уведомлении связана с несколькими приложениями.
- Если уведомление предназначено для предоставления рекомендаций пользователям.
- Если для общения требуются индивидуальные визуальные эффекты, анимация или уникальные структуры данных.
Разрешения уведомления
Какими бы релевантными и своевременными могут быть уведомления, большинство уведомлений не являются освобожденными , то есть пользователь должен согласиться на получение уведомлений из вашего приложения.
Существует одно исключение из этого: начиная с Android 13 (API-уровни 33), сеансы медиа-сессии и приложения, которые управляют телефонными звонками, освобождаются от запроса согласия пользователя.
Мы настоятельно рекомендуем, чтобы ваше приложение предоставило параметры уведомлений в настройках, чтобы пользователи могли обновлять свои уведомления .
Позвольте пользователю принять участие в не освобожденных уведомлениях
Для не освобожденных уведомлений предложите пользователю указать, хотят ли он выбрать уведомления.

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

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

Не

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

1 Индикатор уведомления в строке состояния, указывающий, что в ящике уведомлений есть уведомление.
2 Уведомление «Посмотреть» на текущем экране, чтобы привлечь внимание пользователя в середине задачи.
Ящик уведомлений
Ящик уведомлений в Android обычно показывает уведомления в обратном хронологическом порядке, при этом на корректировки влияют следующие условия:
- Приложение приложения приложения приложение или важность уведомления
- Уведомление о том, предупредило ли уведомления пользователя звуком или вибрацией
- Любые люди, привязанные к уведомлению и являются ли они с звездными контактами
- Представляет ли уведомление важной постоянной деятельности, такой как телефонное звонок или воспроизведение музыки
- Изменения появления некоторых уведомлений ОС Android в верхней и нижней части списка, добавив акцент или Deemphasis, что помогает пользователю сканировать содержание сканирования
Обрабатывать устаревшие уведомления
Ящик уведомлений предназначен для того, чтобы показать информацию пользователей, которая имеет отношение к текущему моменту времени.

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

Действия, которые пользователи могут выполнять с уведомлениями
Уведомления могут позволить пользователям выполнять любое из следующих действий:
Перейдите к пункту назначения: для навигации пользователь может нажать уведомление.
Когда пользователь вызывает уведомление, ваше приложение должно отображать пользовательский интерфейс, который напрямую связан с этим уведомлением и позволяет пользователю предпринять немедленные действия.
См. Расширенное представление о уведомлении: в заголовке появляется индикатор расширения.
Рисунок 19: Расширенное уведомление Отбросьте уведомление (если разрешено): пользователь может отклонить его, проведя его влево или вправо.
Продолжающиеся уведомления, которые указывают на продолжающийся процесс на заднем плане, такие как воспроизведение музыки, могут не быть уволены с помощью удара.
Снам уведомление о головах: пользователь может провести уведомление о головном уведомлении , и никакие дальнейшие уведомления от этого события не разрешаются пульсировать в течение одной минуты.
Управление аналогичными уведомлениями в будущем: пользователи могут получить доступ к элементам управления уведомлениями по:
- Прикосновение и удержание индивидуального уведомления
- Свигая уведомление влево или вправо, а затем нажав на значок настроек
Отображаемые элементы управления варьируются в зависимости от версии Android и имеют ли приложение каналы для его уведомлений (начиная с Android 8.0).
Группируйте множественные уведомления
Для приложений, которые генерируют несколько уведомлений одного типа, Android предлагает группировку уведомлений, чтобы избежать подавляющих пользователей.
Ваше приложение может представлять несколько уведомлений в соответствии со следующей иерархией.
- У уведомлений о родительстве отображается краткое изложение своих уведомлений о детских уведомлениях.
- Если пользователь расширяет родительское уведомление, Android раскрывает все уведомления о детских.
- Пользователь может расширить уведомление о ребенке, чтобы раскрыть весь его контент.
Android представляет уведомления о детских частях без дублирования информации о заголовке.
Уведомления детей должны быть понятны, если они появляются в одиночку, так как система может показать их вне группы, когда они прибывают.
Настройки
Каналы
Начиная с 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.
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

Не

Делать
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.

Не

Делать
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:
- Understand the anatomy of a notification.
- Choose the type of notification for your use case.
- 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.

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.

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.

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()
Действия уведомления

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

Не

Делать
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.

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.

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.

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.

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.)

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.

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.

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

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.


Делать

Не
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.

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.

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

Не

Не
Поведение
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.

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.

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.

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.
Настройки
Каналы
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.
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

Не

Делать
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.

Не

Делать
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 .