Permisos de notificaciones para notificaciones de aceptación

Las notificaciones en Android 13 usan un modelo de aceptación, lo que representa un cambio con respecto a las versiones anteriores de Android, que usan un modelo de rechazo. En Android 13, todas las apps deben pedir permiso a los usuarios antes de enviar mensajes de notificación. Este modelo ayuda a reducir las interrupciones por notificaciones, minimiza la sobrecarga de información y ayuda a los usuarios a controlar qué notificaciones aparecen según lo que les resulta importante. Para admitir el modelo de aceptación, los OEM deben implementar cambios en los sistemas de permisos de tiempo de ejecución y notificaciones.

En esta página, se describe lo que deben implementar los OEM para admitir este cambio y cómo validar la implementación.

Implementa cambios en las notificaciones de aceptación

A partir de Android 13, las apps 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, el parámetro de configuración que determina si una app puede enviar notificaciones al usuario se almacena en el sistema de permisos. Antes de Android 13, este parámetro de configuración se almacenaba en el sistema de notificaciones. Por lo tanto, los OEMs deben migrar los datos de notificaciones existentes sobre si una app tiene permiso para enviar notificaciones del sistema de notificaciones al sistema de permisos de tiempo de ejecución. Los OEM también deben mantener las APIs existentes en el sistema de notificaciones que muestran esos datos a los desarrolladores de apps.

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

Comportamiento de las notificaciones del usuario en un modelo de aceptación

En la siguiente tabla, se ilustra el comportamiento de las notificaciones para varias versiones de la app en un dispositivo que ejecuta Android 13:

Dispositivo con Android 13 Apps orientadas a Android 13 o versiones posteriores Apps segmentadas para versiones anteriores a Android 13
Nueva instalación Las notificaciones se bloquean hasta que la app lo solicite.

Las apps controlan cuándo solicitar permisos.

Las notificaciones se bloquean hasta que el SO lo solicite.

El permiso se solicita la primera vez que se ejecuta la app.

App existente (actualización) Se permiten las notificaciones hasta que la app lo solicite.

Se otorga permiso temporal hasta que la app lo solicite en la primera ejecución apta.

Las notificaciones se permiten hasta que el SO lo solicite.

El permiso temporal se otorga hasta la primera ejecución de la app.

Lineamientos para la implementación

Para obtener información sobre la implementación de referencia, consulta servicio de notificaciones, servicio de permisos y servicio de políticas. Para implementar excepciones para los controladores de permisos predeterminados, consulta Permisos de tiempo de ejecución.

Durante la implementación, usa los siguientes lineamientos sobre el comportamiento de las notificaciones del usuario para las apps que segmentan SDKs de Android 13 o versiones anteriores:

  • Las apps recién instaladas en un dispositivo Android 13 no deben enviar notificaciones sin que el usuario apruebe un mensaje de permiso.
    • Si la app se segmenta para Android 13 y versiones posteriores, las notificaciones deben bloquearse hasta que la app lo solicite, ya que la app controla cuándo y si debe solicitar permiso al usuario.
    • Si la app se segmenta para versiones anteriores a Android 13, se deben bloquear las notificaciones hasta que el SO lo solicite. El SO debe mostrar la solicitud de permiso en la primera ejecución de la app.
  • Se debe permitir que todas las apps que existían en el dispositivo antes de la actualización a Android 13, o las que se restablecieron a través de una copia de seguridad y restablecimiento, envíen notificaciones hasta la primera vez que el usuario inicie una actividad desde esa app.

    • En el caso de las apps que segmentan el SDK de versiones de Android 13 y posteriores, si el usuario no personalizó previamente la configuración de notificaciones para esta app a nivel de la app o de NotificationChannel, revoca el permiso temporal otorgado. Luego, las apps deben solicitar permiso al usuario antes de poder seguir enviando notificaciones.

      Si una app actualizada que se segmenta para 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 inició al menos una vez, la app debe mostrar un mensaje de permiso de notificación antes de que se le permita ejecutar más servicios en primer plano.

    • En el caso de las apps que tienen un SDK de destino de versiones anteriores a Android 13, intercepta el primer inicio de actividad después de que la app haya creado al menos un NotificationChannel para mostrar un mensaje de permiso en el que se pregunte si el usuario desea recibir notificaciones de la app.

      Si un usuario personalizó la configuración de notificaciones a nivel de la app o de NotificationChannel para una app en el dispositivo que se actualiza o en una copia de seguridad que se restablece en el dispositivo, la configuración a nivel de la app debe migrarse al sistema de permisos con la marca FLAG_PERMISSION_USER_SET. No se debe mostrar al usuario ningún otro mensaje de permiso de notificación, a menos que la app lo solicite específicamente.

  • La copia de seguridad y el restablecimiento deben ser compatibles con versiones anteriores y posteriores entre un dispositivo con Android 13 y un dispositivo con una versión anterior del SO. Los datos de la copia de seguridad generados desde un dispositivo Android 13 se deben restablecer en una versión anterior del SO, y los datos de la copia de seguridad de una versión anterior del SO se deben restablecer en un dispositivo Android 13.

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

Validar los cambios en los sistemas de notificaciones y permisos

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