Permiso de notificación para notificaciones de suscripción voluntaria

Las notificaciones en Android 13 usan un modelo de suscripción, que es un cambio con respecto a las versiones anteriores de Android, que usan un modelo de exclusión. En Android 13, todas las aplicaciones deben pedir permiso a los usuarios antes de enviar avisos de notificación. Este modelo ayuda a reducir las interrupciones de las notificaciones, minimiza la sobrecarga de información y ayuda a los usuarios a controlar qué notificaciones aparecen en función de lo que es importante para ellos. Para admitir el modelo de suscripción, los OEM deben implementar cambios en los sistemas de notificación y permisos de tiempo de ejecución.

Esta página describe lo que los OEM deben implementar para respaldar este cambio y cómo validar la implementación.

Implementar cambios para las notificaciones de suscripción

A partir de Android 13, las aplicaciones deben declarar su intención de enviar notificaciones solicitando el permiso de tiempo de ejecución android.permission.POST_NOTIFICATION del sistema antes de poder enviar notificaciones.

En Android 13 y versiones posteriores, la configuración que determina si una aplicación puede enviar notificaciones al usuario se almacena en el sistema de permisos. Antes de Android 13, esta configuración se almacenaba en el sistema de notificación. Por lo tanto, los OEM deben migrar los datos de notificación existentes sobre si una aplicación puede enviar notificaciones, desde el sistema de notificación al sistema de permisos de tiempo de ejecución. Los OEM también deben mantener las API existentes en el sistema de notificación que muestran esos datos a los desarrolladores de aplicaciones.

Los cambios en los sistemas de notificación y permisos se basan en el modelo de aceptación del comportamiento de notificación del usuario y se describen en la sección Directrices para la implementación .

Comportamiento de las notificaciones de los usuarios en un modelo opt-in

La siguiente tabla ilustra el comportamiento de las notificaciones para varias versiones de la aplicación en un dispositivo con Android 13:

Dispositivo en Android 13 Aplicaciones dirigidas a Android 13 o superior Aplicaciones dirigidas a versiones anteriores a Android 13
Nueva instalación Las notificaciones están bloqueadas hasta que la aplicación lo solicite.

Las aplicaciones controlan cuándo pedir permiso.

Las notificaciones se bloquean hasta que el sistema operativo las solicite.

Se pide permiso en la primera ejecución de la aplicación.

Aplicación existente (actualización) Las notificaciones están permitidas hasta que la aplicación lo solicite.

Se otorga un permiso temporal hasta que la aplicación lo solicite en la primera carrera de calificación.

Las notificaciones están permitidas hasta que el sistema operativo las solicite.

Se otorga permiso temporal hasta la primera ejecución de la aplicación.

Pautas para la implementación

Para una implementación de referencia, consulte el servicio de notificación , el servicio de permisos y el servicio de políticas . Para implementar excepciones para los controladores de permisos predeterminados, consulte Permisos de tiempo de ejecución .

Durante la implementación, use las siguientes pautas sobre el comportamiento de las notificaciones de los usuarios para aplicaciones destinadas a Android 13 o SDK inferiores:

  • Las aplicaciones recién instaladas en un dispositivo con Android 13 no deben enviar una notificación sin que el usuario apruebe una solicitud de permiso.
    • Si la aplicación tiene como objetivo las versiones de Android 13 y posteriores, las notificaciones deben bloquearse hasta que la aplicación lo solicite, ya que la aplicación controla cuándo y si solicitar permiso del usuario.
    • Si la aplicación apunta a versiones anteriores a Android 13, las notificaciones deben bloquearse hasta que el sistema operativo lo solicite. El sistema operativo debe mostrar la solicitud de permiso en la primera ejecución de la aplicación.
  • Cualquier aplicación que existiera en el dispositivo antes de una actualización a Android 13, o cualquier aplicación que se restauró mediante copia de seguridad y restauración, debe poder enviar notificaciones hasta la primera vez que el usuario inicie una actividad desde esa aplicación.

    • Para las aplicaciones que tienen como destino el SDK de las versiones de Android 13 y posteriores, si el usuario no ha personalizado previamente la configuración de notificaciones para esta aplicación en el nivel de aplicación o NotificationChannel , revoque la concesión de permiso temporal. Luego, las aplicaciones deben pedir permiso al usuario antes de poder continuar enviando notificaciones.

      Si una aplicación actualizada destinada a Android 13 no tiene actualmente el permiso de notificación a través de la concesión de actualización temporal y el usuario la ha iniciado al menos una vez, la aplicación debe mostrar un aviso de permiso de notificación antes de que se le permita ejecutar más servicios en primer plano.

    • Para las aplicaciones que tienen un SDK de destino de versiones anteriores a Android 13, intercepte el inicio de la primera actividad después de que la aplicación haya creado al menos un NotificationChannel para mostrar un mensaje de permiso que pregunta si el usuario desea recibir notificaciones de la aplicación.

      Si un usuario personalizó previamente la configuración de notificaciones en el nivel de aplicación o NotificationChannel para una aplicación en el dispositivo de actualización o en una copia de seguridad que se está restaurando en el dispositivo, la configuración de nivel de aplicación debe migrarse al sistema de permisos con el indicador FLAG_PERMISSION_USER_SET . No se debe mostrar al usuario ninguna solicitud de permiso de notificación adicional a menos que la aplicación lo solicite específicamente.

  • La copia de seguridad y la restauración deben ser compatibles con versiones anteriores y posteriores entre un dispositivo Android 13 y un dispositivo de una versión anterior del sistema operativo. Los datos de copia de seguridad generados desde un dispositivo Android 13 deben restaurarse en una versión anterior del sistema operativo, y los datos de copia de seguridad de una versión anterior del sistema operativo deben restaurarse en un dispositivo Android 13.

  • Las notificaciones de medios asociadas con la reproducción de medios en curso deben estar exentas del permiso de notificación.

Validar cambios en los sistemas de notificaciones y permisos.

Para validar la implementación, ejecute las siguientes pruebas: