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

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

На этой странице описывается, что 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.

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

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

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