Уведомление – это сообщение, которое Android показывает за пределами интерфейса приложения, чтобы напомнить пользователю о чем-то, сообщить о сообщении от другого человека или предоставить другую актуальную информацию из приложения. Пользователи могут нажать на уведомление, чтобы открыть приложение или выполнить действие прямо из уведомления.
На этой странице рассказывается, где появляются уведомления и какие функции доступны.
Руководства по внедрению
В руководствах ниже рассказывается, как реализовать в приложении различные функции уведомлений.
- Создание уведомления. Узнайте, как создать и отправить простое уведомление.
- Разрешение на уведомления. Узнайте, как работать с динамическим разрешением
POST_NOTIFICATIONS. - Каналы уведомлений позволяют пользователям управлять поведением уведомлений.
- Раскрывающиеся уведомления.
Показывайте больше контента, используя стили
BigTextStyleилиMessagingStyle. - Всплывающие чаты. Используйте плавающие расширяемые оверлеи для чатов.
- Уведомления о ходе выполнения. Позволяют отслеживать поездки, доставку и другие процессы, запущенные пользователем.
- Уведомления в стиле звонков. Позволяют отличать входящие и текущие вызовы от других типов уведомлений.
- Уведомления в реальном времени: отслеживайте прогресс текущих активностей.
- Руководства по уведомлениям для View. Инструкции по реализации уведомлений в приложениях на основе View.
Дополнительную информацию о дизайне уведомлений и шаблонах взаимодействия можно найти в руководстве по дизайну уведомлений.
Отображение на устройстве
Уведомления автоматически появляются в разных местах и форматах. Уведомление появляется в виде значка в строке состояния, более подробной записи на панели уведомлений и значка на значке приложения.
Поведение пользователей на разных устройствах
По умолчанию уведомления также появляются на подключенных носимых устройствах. Если контент уведомления относится только к исходному устройству, используйте setLocalOnly(). Пример – уведомление о том, что скачивание медиафайла завершено. Подробнее об уведомлениях в Wear OS…
Строка состояния и панель уведомлений
Когда вы отправляете уведомление, оно сначала появляется в виде значка в строке состояния.
Чтобы открыть панель уведомлений, пользователю нужно провести вниз по строке состояния. На панели можно посмотреть подробности и выполнить действия с уведомлением.
Пользователи могут потянуть уведомление в выдвигающейся панели вниз, чтобы развернуть его и увидеть дополнительный контент и командные кнопки (если они есть). Начиная с Android 13 в расширенном представлении есть кнопка, которая позволяет остановить приложение с активными службами.
Уведомление остается на панели уведомлений, пока его не закроет пользователь или приложение.
Уведомление heads-up
Начиная с Android 5.0 уведомления могут ненадолго появляться в плавающем окне. Такие уведомления называются всплывающими. Обычно это важные уведомления, о которых пользователь должен узнать немедленно. Они появляются, только если устройство разблокировано.
Уведомление во время движения появляется, когда его отправляет приложение. Оно исчезает через некоторое время, но остается на панели уведомлений.
Уведомления во время движения могут появляться в следующих случаях:
Пользователь работает в полноэкранном режиме, например когда приложение использует
fullScreenIntent.Уведомление имеет высокий приоритет и использует рингтоны или вибрацию на устройствах с Android 7.1 (уровень API 25) и более ранними версиями.
Канал уведомлений имеет высокий приоритет на устройствах с Android 8.0 (уровень API 26) и более поздними версиями.
Блокировка экрана
Начиная с версии Android 5.0 уведомления могут появляться на заблокированном экране.
Вы можете программно задать, будут ли уведомления от вашего приложения показываться на заблокированном экране и, если да, то насколько подробными они будут.
Пользователи могут выбрать в настройках системы, насколько подробными должны быть уведомления на заблокированном экране, или отключить их. Начиная с Android 8.0 пользователи могут включать и отключать уведомления на заблокированном экране для каждого канала уведомлений.
Подробнее о том, как настроить видимость заблокированного экрана…
Пометка на значке приложения
В поддерживаемых панелях запуска на устройствах с Android 8.0 (уровень API 26) и более поздними версиями ОС значки приложений указывают на новые уведомления с помощью цветного значка, известного как значок уведомления, на соответствующем значке панели запуска приложений.
Чтобы посмотреть уведомления от приложения, пользователю достаточно нажать и удерживать значок приложения. В открывшемся меню можно закрыть уведомления или выполнить с ними другие действия, как и на панели уведомлений.
Подробнее о том, как работают значки…
устройства Wear OS;
Если у пользователя есть подключенное устройство Wear OS, все уведомления будут автоматически появляться на нем, включая подробные сведения и командные кнопки.
Вы можете улучшить взаимодействие с пользователем, настроив внешний вид уведомлений на носимых устройствах и предоставив различные действия, включая готовые ответы и ответы с голосовым вводом. Подробнее о том, как добавить в уведомление функции для носимых устройств…
Дизайн уведомлений
Дизайн уведомления определяется системными шаблонами, а ваше приложение определяет содержимое для каждой части шаблона. Некоторые сведения видны только в развернутом уведомлении.
На рисунке 7 показаны наиболее распространенные части уведомления:
- Маленький значок: обязательный; задается с помощью
setSmallIcon(). - Название приложения: предоставляется системой.
- Временная метка. Предоставляется системой, но вы можете переопределить ее с помощью
setWhen()или скрыть с помощьюsetShowWhen(false). - Большой значок (необязательно). Обычно используется только для фотографий контактов.
Не используйте его для значка приложения. Задайте с помощью
setLargeIcon(). - Заголовок (необязательно). Задается с помощью
setContentTitle(). - Текст: необязательно; задается с помощью
setContentText().
Мы настоятельно рекомендуем использовать системные шаблоны, чтобы обеспечить совместимость дизайна на всех устройствах. При необходимости вы можете создать собственный макет уведомления.
Подробнее о том, как создать уведомление…
Действия с уведомлениями
Хотя это и не обязательно, рекомендуется, чтобы при нажатии на уведомление открывалось соответствующее действие приложения. Помимо этого действия по умолчанию, вы можете добавить командные кнопки, которые позволяют выполнить задачу, связанную с приложением, прямо из уведомления, часто без открытия действия, как показано на рисунке 8.
Начиная с Android 7.0 (уровень API 24), вы можете добавить действие, позволяющее отвечать на сообщения или вводить другой текст прямо в уведомлении.
Начиная с Android 10 (уровень API 29), платформа может автоматически генерировать кнопки действий с рекомендуемыми действиями на основе намерений.
Подробнее о том, как добавлять командные кнопки, рассказывается в разделе Как создать уведомление.
Требовать разблокировки устройства
Пользователи могут видеть действия с уведомлениями на заблокированном экране устройства. Если действие с уведомлением приводит к тому, что приложение запускает операцию или отправляет быстрый ответ, пользователю необходимо разблокировать устройство, прежде чем приложение сможет вызвать это действие.
На устройствах с Android 12 (уровень API 31) и более поздних версий можно настроить действие уведомления так, чтобы для его выполнения требовалось разблокировать устройство, независимо от того, какой рабочий процесс запускает это действие. Этот параметр добавляет дополнительный уровень безопасности для уведомлений на заблокированных устройствах.
Чтобы требовать разблокировки устройства перед тем, как приложение выполнит действие, связанное с уведомлением, передайте true в setAuthenticationRequired() при создании действия, как показано в следующем фрагменте кода:
val intent = Intent( context, null /** Replace with a valid target activity */ ) val moreSecureNotification = NotificationCompat.Action.Builder( 0, "Reply", PendingIntentCompat.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE, false) ) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Уведомления с раскрывающимися компонентами
По умолчанию текст уведомления сокращается до одной строки. Если вы хотите, чтобы уведомление было длиннее, вы можете включить большую текстовую область, которую можно расширить, применив дополнительный шаблон, как показано на рисунке 9.
Вы также можете создать раскрывающееся уведомление с изображением, в стиле папки "Входящие", с чатом или с элементами управления воспроизведением медиаконтента. Подробнее о том, как создать разворачивающееся уведомление…
Обновления и группы уведомлений
Чтобы не заваливать пользователей уведомлениями, обновляйте существующие уведомления, а не создавайте новые. Также можно использовать уведомления в стиле папки "Входящие", чтобы показывать обновления в чате.
Если же вам нужно отправить несколько уведомлений, объедините их в группу. Эта функция доступна в Android 7.0 и более поздних версиях.
Группа уведомлений позволяет свернуть несколько уведомлений в одно сообщение на панели уведомлений со сводкой. Пользователь может постепенно разворачивать группу уведомлений и каждое уведомление в ней, чтобы увидеть более подробную информацию, как показано на рисунке 10.
Подробнее о том, как добавить уведомления в группу…
Каналы уведомлений
Начиная с Android 8.0 (уровень API 26), все уведомления должны быть назначены каналу, иначе они не будут показываться. Это позволяет пользователям отключать определенные каналы уведомлений для вашего приложения, а не все уведомления. Пользователи могут управлять визуальными и звуковыми параметрами для каждого канала в системных настройках Android, как показано на рисунке 11. Пользователи также могут нажать на уведомление и удерживать его, чтобы изменить настройки связанного с ним канала.
На устройствах с Android 7.1 (уровень API 25) и более ранними версиями пользователи могут управлять уведомлениями только на уровне приложения. В Android 7.1 и более ранних версиях у каждого приложения есть только один канал.
У приложения может быть отдельный канал для каждого типа уведомлений. Приложение также может создавать каналы уведомлений в ответ на действия пользователей. Например, вы можете настроить отдельные каналы уведомлений для каждой группы чатов, созданной пользователем в мессенджере.
В канале также указывается уровень важности уведомлений для Android 8.0 и более поздних версий, поэтому все уведомления, отправленные в один и тот же канал, ведут себя одинаково. Это описано в следующем разделе.
Подробнее о том, как создавать каналы уведомлений и управлять ими…
Важность уведомлений
Android использует важность уведомления, чтобы определить, насколько оно должно отвлекать пользователя визуально и на слух. Чем выше важность уведомления, тем больше оно отвлекает.
В Android 7.1 (API уровня 25) и более ранних версиях важность уведомления определяется его priority.
В Android 8.0 (уровень API 26) и более поздних версиях важность уведомления определяется параметром importance канала, в котором оно публикуется. Пользователи могут изменить важность канала уведомлений в системных настройках, как показано на рисунке 12.
Возможные уровни важности и связанные с ними действия:
Срочные – сопровождаются звуковым сигналом и появляются в виде уведомления во время движения.
Высокий – со звуковым сигналом.
Средний: без звука.
Низкий – без звука и значка в строке состояния.
Все уведомления, независимо от важности, появляются в ненавязчивых местах системного интерфейса, например на панели уведомлений и в виде значка на значке приложения. Однако вы можете изменить внешний вид значка уведомления.
Подробнее о том, как задать важность…
Режим "Не беспокоить"
Начиная с Android 5.0 (уровень API 21), пользователи могут включать режим "Не беспокоить", который отключает звук и вибрацию для всех уведомлений. Уведомления по-прежнему будут появляться в системном интерфейсе, если пользователь не укажет иное.
В режиме "Не беспокоить" есть три уровня:
- Полная тишина. Отключаются все звуки и вибрация, в том числе будильники, музыка, видео и игры.
- Только будильник. Блокируется вибросигнал и все звуки, кроме будильника.
- Только важные. Пользователи могут выбрать, какие системные категории могут прерывать их, например только будильники, напоминания, мероприятия, звонки или сообщения. Для сообщений и звонков пользователи могут настроить фильтр по отправителю или абоненту, как показано на рисунке 13.
В Android 8.0 (уровень API 26) и более поздних версиях пользователи могут разрешить показ уведомлений из определенных категорий (каналов) приложения, отключив для них режим "Не беспокоить". Например, в платежном приложении могут быть каналы для уведомлений о снятии средств и пополнении счета. В режиме приоритета пользователь может разрешить уведомления о снятии средств, уведомления о депозите или и то, и другое.
На устройствах с Android 7.1 (уровень API 25) и более ранними версиями пользователи могут разрешать уведомления для отдельных приложений, а не каналов.
Чтобы настроить уведомления для этих пользовательских настроек, необходимо задать категорию на уровне системы.
Уведомления для служб переднего плана
Уведомление требуется, когда в приложении запущена активная служба – Service, которая работает в фоновом режиме, заметна пользователю и выполняется долго, например медиапроигрыватель. Это уведомление нельзя закрыть, как другие. Чтобы убрать уведомление, нужно остановить службу или убрать ее из активного состояния.
Подробнее об активных службах… Если вы разрабатываете медиапроигрыватель, также прочитайте статью Воспроизведение медиаконтента в фоновом режиме.
Поведение уведомлений
Android 16.0, уровень API 36
Теперь уведомления автоматически группируются от имени приложения.
Автоматически группируются следующие уведомления:
- Уведомления без краткого пересказа
- Уведомления без дочерних уведомлений
- Уведомления с одним или небольшим количеством дочерних уведомлений
Android 15.0, уровень API 35
Снижение громкости уведомлений
В Android 15 появилась функция снижения громкости уведомлений, которая улучшает работу с уведомлениями, поступающими быстро друг за другом. Эта функция уменьшает количество, громкость и интенсивность вибрации повторяющихся уведомлений в течение двух минут.
Критические уведомления, для которых требуется звук и вибрация, не подпадают под действие этой функции. Пользователь может отключить снижение громкости уведомлений в настройках.