Уведомление – это сообщение, которое Android показывает за пределами интерфейса приложения, чтобы напомнить пользователю о чем-то, сообщить о сообщении от другого человека или предоставить другую актуальную информацию из приложения. Пользователи могут нажать на уведомление, чтобы открыть приложение или выполнить действие прямо из уведомления.
На этой странице рассказывается, где появляются уведомления и какие функции доступны.
Руководства по внедрению
В руководствах ниже рассказывается, как реализовать в приложении различные функции уведомлений.
- Создание уведомления. Узнайте, как создать и отправить базовое уведомление.
- Разрешение на уведомления. Узнайте, как работать с динамическим разрешением
POST_NOTIFICATIONS. - Каналы уведомлений позволяют пользователям управлять поведением уведомлений.
- Раскрывающиеся уведомления.
Показывайте больше контента, используя стили
BigTextStyleилиMessagingStyle. - Всплывающие чаты. Используйте плавающие расширяемые оверлеи для чатов.
- Уведомления о ходе выполнения. Позволяют отслеживать поездки, доставку и другие процессы, запущенные пользователем.
- Уведомления в стиле звонков позволяют отличать входящие и текущие вызовы от других типов уведомлений.
- Уведомления в реальном времени: отслеживайте прогресс текущих активностей.
- Руководства по уведомлениям для приложений на основе 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 появилась функция снижения громкости уведомлений, которая улучшает работу с уведомлениями, поступающими быстро друг за другом. Эта функция уменьшает количество повторяющихся уведомлений, а также снижает громкость и интенсивность вибрации для них на срок до двух минут.
Критические уведомления, которые требуют звука и вибрации для привлечения внимания, не подлежат задержке. Пользователь может отключить снижение громкости уведомлений в настройках.