Уведомление — это сообщение, которое Android отображает за пределами пользовательского интерфейса вашего приложения, чтобы предоставить пользователю напоминания, сообщения от других людей или другую актуальную информацию из вашего приложения. Пользователи могут нажать на уведомление, чтобы открыть ваше приложение или выполнить действие непосредственно из уведомления.
На этой странице представлен обзор мест появления уведомлений и доступных функций. Чтобы начать создавать уведомления, прочтите статью «Создание уведомления» .
Дополнительную информацию о дизайне уведомлений и шаблонах взаимодействия см. в Руководстве по дизайну уведомлений .
Появления на устройстве
Уведомления автоматически появляются у пользователей в разных местах и форматах. Уведомление отображается в виде значка в строке состояния, более подробной записи в панели уведомлений и значка на значке приложения. Уведомления также отображаются на сопряженных носимых устройствах.
Строка состояния и панель уведомлений
При создании уведомления оно сначала отображается в виде значка в строке состояния.
Рисунок 1. Значки уведомлений появляются в левой части строки состояния.
Пользователи могут провести пальцем вниз по строке состояния, чтобы открыть панель уведомлений, где они могут просмотреть более подробную информацию и выполнить действия с уведомлением.
Рисунок 2. Уведомления в панели уведомлений.
Пользователи могут потянуть вниз уведомление в панели, чтобы открыть расширенный вид, в котором отображается дополнительный контент и кнопки действий (если они есть). Начиная с Android 13, этот расширенный вид включает кнопку, позволяющую пользователям остановить приложение, у которого запущены службы на переднем плане .
Уведомление остается видимым в панели уведомлений до тех пор, пока оно не будет закрыто приложением или пользователем.
Уведомление о заголовке
Начиная с Android 5.0, уведомления могут кратковременно появляться во всплывающем окне, называемом « head-up-уведомлением» . Обычно это касается важных уведомлений, о которых пользователю нужно узнать немедленно, и они появляются только на разблокированном устройстве.
Рисунок 3. Всплывающее уведомление появляется поверх активного приложения.
Всплывающее уведомление появляется, когда ваше приложение отправляет уведомление. Через мгновение оно исчезает, но остаётся видимым в панели уведомлений, как обычно.
Условия, которые могут вызвать отправку уведомлений, включают в себя следующее:
Действие пользователя происходит в полноэкранном режиме, например, когда приложение использует
fullScreenIntent
.Уведомление имеет высокий приоритет и использует рингтоны или вибрацию на устройствах под управлением Android 7.1 (уровень API 25) и ниже.
Канал уведомлений имеет большое значение на устройствах под управлением Android 8.0 (уровень API 26) и выше.
Экран блокировки
Начиная с Android 5.0 уведомления могут появляться на экране блокировки.
Вы можете программно настроить, будут ли отображаться уведомления, публикуемые вашим приложением, на защищенном экране блокировки, и если да, то какой уровень детализации они будут отображать.
Пользователи могут использовать системные настройки, чтобы выбрать уровень детализации уведомлений на экране блокировки или отключить все уведомления на экране блокировки. Начиная с Android 8.0, пользователи могут отключать или включать уведомления на экране блокировки для каждого канала уведомлений.
Рисунок 4. Уведомления на экране блокировки со скрытым конфиденциальным содержимым.
Более подробную информацию см. в разделе Настройка видимости экрана блокировки .
Значок значка приложения
В поддерживаемых лаунчерах на устройствах под управлением Android 8.0 (уровень API 26) и выше значки приложений обозначают новые уведомления цветным значком , известным как точка уведомления, на соответствующем значке лаунчера приложения.
Пользователи могут нажать и удерживать значок приложения, чтобы увидеть уведомления этого приложения. В этом меню, аналогично панели уведомлений, можно закрыть уведомления или выполнить необходимые действия.
Рисунок 5. Значки уведомлений и сенсорное меню.
Чтобы узнать больше о том, как работают значки, прочитайте статью Изменение значка уведомления .
Устройства Wear OS
Если у пользователя есть сопряженное устройство Wear OS, все ваши уведомления будут отображаться на нем автоматически, включая раскрываемые сведения и кнопки действий.
Вы можете улучшить взаимодействие с пользователем, настроив внешний вид уведомлений на носимых устройствах и добавив различные действия, включая предлагаемые ответы и голосовой ввод. Подробнее см. в статье о том, как добавить в уведомления функции, специфичные для носимых устройств .
Рисунок 6. Уведомления автоматически появляются на сопряженном устройстве Wear OS.
Анатомия уведомлений
Дизайн уведомления определяется системными шаблонами, а ваше приложение определяет содержимое каждой части шаблона. Некоторые сведения об уведомлении отображаются только в развернутом виде.
Рисунок 7. Уведомление с основными данными.
Наиболее распространенные части уведомления показаны на рисунке 7 следующим образом:
- Маленький значок: обязателен; устанавливается с помощью
setSmallIcon()
. - Название приложения: предоставлено системой.
- Метка времени: предоставляется системой, но вы можете переопределить ее с помощью
setWhen()
или скрыть с помощьюsetShowWhen(false)
. - Большой значок: необязательный; обычно используется только для фотографий контактов. Не используйте его для значка приложения. Устанавливается с помощью
setLargeIcon()
. - Заголовок: необязательно; устанавливается с помощью
setContentTitle()
. - Текст: необязательно; задается с помощью
setContentText()
.
Мы настоятельно рекомендуем использовать системные шаблоны для обеспечения совместимости дизайна на всех устройствах. При необходимости вы можете создать собственный макет уведомлений .
Дополнительную информацию о том, как создать уведомление с этими и другими функциями, читайте в разделе Создание уведомления .
Действия уведомления
Хотя это не обязательно, рекомендуется, чтобы при нажатии на каждое уведомление открывалась соответствующая активность приложения. Помимо этого действия по умолчанию, вы можете добавить кнопки действий, которые выполняют задачи, связанные с приложением, из уведомления, часто без открытия активности, как показано на рисунке 8.
Рисунок 8. Уведомление с кнопками действий.
Начиная с Android 7.0 (уровень API 24) вы можете добавить действие для ответа на сообщения или ввести другой текст непосредственно из уведомления.
Начиная с Android 10 (уровень API 29), платформа может автоматически генерировать кнопки действий с предлагаемыми действиями на основе намерений.
Добавление кнопок действий более подробно описано в разделе Создание уведомления .
Требуется разблокированное устройство
Пользователи могут видеть действия, связанные с уведомлениями, на экране блокировки устройства. Если действие, связанное с уведомлением, приводит к запуску приложения или отправке прямого ответа, пользователи должны разблокировать устройство, прежде чем приложение сможет выполнить это действие.
В Android 12 (уровень API 31) и выше вы можете настроить действие уведомления таким образом, чтобы приложение могло вызвать это действие только при условии разблокировки устройства, независимо от того, какой рабочий процесс оно запускает. Эта опция обеспечивает дополнительный уровень безопасности для уведомлений на заблокированных устройствах.
Чтобы потребовать разблокировки устройства перед тем, как ваше приложение вызовет заданное действие уведомления, передайте значение true
в setAuthenticationRequired()
при создании действия уведомления, как показано в следующем фрагменте кода:
Котлин
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Ява
Notification moreSecureNotification = new Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build();
Расширяемое уведомление
По умолчанию текст уведомления обрезается до одной строки. Если вы хотите, чтобы уведомление было длиннее, вы можете включить более крупную текстовую область с возможностью расширения, применив дополнительный шаблон, как показано на рисунке 9.
Рисунок 9. Расширяемое уведомление для крупного текста.
Вы также можете создать расширяемое уведомление с изображением, в стиле входящих сообщений, с перепиской в чате или с элементами управления воспроизведением мультимедиа. Подробнее см. в статье «Создание расширяемого уведомления» .
Обновления уведомлений и группы
Чтобы не перегружать пользователей многочисленными или избыточными уведомлениями при появлении дополнительных обновлений, обновите существующее уведомление вместо того, чтобы отправлять новое, или используйте уведомления в стиле входящих сообщений для отображения обновлений беседы.
Однако если необходимо отправлять несколько уведомлений, рассмотрите возможность объединения отдельных уведомлений в группу, что доступно в Android 7.0 и выше.
Группа уведомлений позволяет объединить несколько уведомлений в одну запись в панели уведомлений с краткой информацией. Пользователь может постепенно разворачивать группу уведомлений и каждое уведомление в ней для получения более подробной информации, как показано на рисунке 10.
Рисунок 10. Свернутая и развернутая группа уведомлений.
Чтобы узнать, как добавлять уведомления в группу, см. раздел Создание группы уведомлений .
Каналы уведомлений
Начиная с Android 8.0 (уровень API 26), все уведомления должны быть назначены каналу, иначе они не будут отображаться. Это позволяет пользователям отключать отдельные каналы уведомлений для вашего приложения, а не все уведомления сразу. Пользователи могут управлять визуальными и звуковыми параметрами для каждого канала в системных настройках Android, как показано на рисунке 11. Пользователи также могут нажать и удерживать уведомление, чтобы изменить поведение для соответствующего канала.
На устройствах под управлением Android 7.1 (API уровня 25) и ниже пользователи могут управлять уведомлениями только для каждого приложения. На устройствах Android 7.1 и ниже каждое приложение фактически имеет только один канал.
Рисунок 11. Настройки уведомлений для приложения «Часы» и одного из его каналов.
Приложение может иметь отдельные каналы для каждого типа уведомлений. Приложение также может создавать каналы уведомлений в ответ на действия пользователей. Например, можно настроить отдельные каналы уведомлений для каждой группы сообщений, созданной пользователем в мессенджере.
Канал также позволяет задать уровень важности уведомлений на Android 8.0 и более поздних версиях, чтобы все уведомления, отправленные в один и тот же канал, имели одинаковое поведение. Это описано в следующем разделе.
Дополнительную информацию см. в разделе Создание и управление каналами уведомлений .
Важность уведомления
Android учитывает важность уведомления, чтобы определить, насколько сильно оно визуально и аудиально отвлекает пользователя. Чем выше важность уведомления, тем оно более отвлекающее.
На устройствах с Android 7.1 (уровень API 25) и ниже важность уведомления определяется его priority
.
В Android 8.0 (уровень API 26) и выше важность уведомления определяется importance
канала, на котором оно опубликовано. Пользователи могут изменить важность канала уведомления в системных настройках, как показано на рисунке 12.
Рисунок 12. Пользователи могут изменять важность каждого канала на Android 8.0 и выше.
Возможные уровни важности и соответствующее поведение уведомлений следующие:
Срочно: издает звук и появляется в виде всплывающего уведомления.
Высокий: издает звук.
Средний: не издает ни звука.
Низкий: не издает звуков и не отображается в строке состояния.
Все уведомления, независимо от их важности, отображаются в местах интерфейса системы, не отвлекая пользователя, например, в панели уведомлений и в виде значка на значке панели запуска. Однако вы можете изменить внешний вид значка уведомления .
Более подробную информацию читайте о том, как установить важность .
Режим «Не беспокоить»
Начиная с Android 5.0 (уровень API 21), пользователи могут включить режим «Не беспокоить» , который отключает звук и вибрацию для всех уведомлений. Уведомления по-прежнему отображаются в системном интерфейсе как обычно, если пользователь не указал иное.
В режиме «Не беспокоить» доступны три уровня:
- Полная тишина: блокирует все звуки и вибрации, в том числе от будильников, музыки, видео и игр.
- Только будильники: блокирует все звуки и вибрации, за исключением звуков будильников.
- Только приоритет: пользователи могут настроить, какие общесистемные категории могут их прерывать, например, только будильники, напоминания, события, звонки или сообщения. Для сообщений и звонков пользователи могут фильтровать сообщения по отправителю или звонящему, как показано на рисунке 13.
Рисунок 13. Пользователи могут разрешать получение уведомлений на основе общесистемных категорий (слева) и отправителя или звонящего (справа).
В Android 8.0 (уровень API 26) и выше пользователи могут дополнительно разрешить уведомления для отдельных категорий приложений (также известных как каналы), переопределяя режим «Не беспокоить» для каждого канала отдельно. Например, платёжное приложение может иметь каналы для уведомлений о снятии и пополнении счёта. В режиме приоритета пользователь может разрешить уведомления о снятии, пополнении счёта или и то, и другое.
На устройствах под управлением Android 7.1 (уровень API 25) и ниже пользователи могут разрешать отправку уведомлений для каждого приложения отдельно, а не по каналам.
Чтобы настроить уведомления для этих пользовательских настроек, необходимо задать общесистемную категорию .
Уведомления для приоритетных служб
Уведомление требуется, когда ваше приложение запускает службу переднего плана — Service
, работающую в фоновом режиме, которая существует длительное время и заметна пользователю, например, медиаплеер. Это уведомление нельзя закрыть, как другие уведомления. Чтобы удалить уведомление, службу необходимо остановить или вывести из состояния переднего плана.
Для получения дополнительной информации см. раздел «Службы переднего плана» . Если вы разрабатываете медиаплеер, см. также раздел «Воспроизведение медиаконтента в фоновом режиме» .
Поведение уведомлений
Android 16.0, уровень API 36
Уведомления теперь автоматически группируются от имени приложения.
Следующие уведомления группируются автоматически:
- Уведомления без резюме
- Уведомления без уведомлений о ребенке
- Уведомления с одним или небольшим количеством дочерних уведомлений
Android 15.0, уровень API 35
Остывать
В Android 15 представлена функция уменьшения времени ожидания уведомлений, призванная улучшить восприятие уведомлений, приходящих одна за другой. Эта функция уменьшает яркость, громкость звука и интенсивность вибрации для повторяющихся уведомлений на срок до двух минут.
Важные уведомления, требующие звука и тактильных сигналов для привлечения внимания, не подлежат перезарядке. Пользователь может отключить перезарядку уведомлений в настройках.
Рисунок 9. Настройки времени ожидания уведомлений.
Ниже приведен пример того, как найти настройки времени ожидания уведомлений:
Котлин
val intent = Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)
Ява
Intent intent = new Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)