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

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

На этой странице описывается, что OEM-производители должны реализовать для поддержки этого изменения, а также как проверить реализацию.

Внести изменения в подписку на уведомления

Начиная с Android 13, приложения должны заявлять о своем намерении отправлять уведомления, запрашивая у системы разрешение среды выполнения android.permission.POST_NOTIFICATION , прежде чем они смогут отправлять уведомления.

В Android 13 и более поздних версиях настройка, определяющая, может ли приложение отправлять уведомления пользователю, хранится в системе разрешений. До Android 13 эта настройка хранилась в системе уведомлений. Следовательно, OEM-производители должны перенести существующие данные об уведомлениях, определяющие, разрешено ли приложению отправлять уведомления, из системы уведомлений в систему разрешений времени выполнения. OEM-производители также должны поддерживать существующие API в системе уведомлений, которые предоставляют эти данные разработчикам приложений.

Изменения в системах уведомлений и разрешений основаны на модели добровольного уведомления пользователей и описаны в разделе «Руководство по внедрению» .

Поведение пользовательских уведомлений в модели подписки

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

Устройство на Android 13 Приложения для Android 13 и выше Приложения, ориентированные на версии ниже Android 13
Новая установка Уведомления блокируются до тех пор, пока приложение не потребует их.

Приложения контролируют, когда запрашивать разрешение.

Уведомления блокируются до тех пор, пока операционная система не потребует иного.

При первом запуске приложения запрашивается разрешение.

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

Временное разрешение предоставляется до тех пор, пока приложение не запросит его при первом квалификационном заезде.

Уведомления разрешены до тех пор, пока операционная система не потребует их.

Временное разрешение предоставляется до первого запуска приложения.

Руководство по внедрению

Для реализации см. разделы «Служба уведомлений» , «Служба разрешений» и «Служба политик» . Для реализации исключений для обработчиков разрешений по умолчанию см. раздел «Разрешения времени выполнения» .

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

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

    • Для приложений, ориентированных на SDK Android 13 и более поздних версий, если пользователь ранее не настроил параметры уведомлений для этого приложения на уровне приложения или NotificationChannel , отмените временное разрешение. В этом случае приложения должны будут запрашивать разрешение пользователя, прежде чем им будет разрешено продолжать отправлять уведомления.

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

    • Для приложений с целевым SDK версии ниже Android 13 перехватите первый запуск активности после того, как приложение создало хотя бы один NotificationChannel , чтобы отобразить запрос на разрешение с вопросом, хочет ли пользователь получать уведомления от приложения.

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

  • Резервное копирование и восстановление должны быть совместимы как с предыдущей, так и с предыдущей версией ОС устройства Android 13. Данные резервной копии, созданные на устройстве Android 13, должны быть восстановлены на устройстве с более ранней версией ОС, а данные резервной копии с более ранней версии ОС должны быть восстановлены на устройстве Android 13.

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

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

Для проверки реализации выполните следующие тесты: