Permiso de notificaciones para notificaciones de aceptación

Las notificaciones en Android 13 usan un modelo de aceptación, que es un cambio con respecto a versiones anteriores de Android, que usan un modelo de inhabilitación. En Android 13, todas las apps deben solicitar permiso a los usuarios antes enviar mensajes de notificación. Este modelo ayuda a reducir las notificaciones las interrupciones, minimiza la sobrecarga de información y ayuda a los usuarios a controlar las notificaciones aparecen según lo que les importa. Para admitir el modelo de participación, los OEM deben implementar cambios en la notificación y el tiempo de ejecución de permisos de estado.

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

Implementa cambios en las notificaciones de aceptación

A partir de Android 13, las apps deben declarar su enviar notificaciones solicitando el android.permission.POST_NOTIFICATION el permiso de tiempo de ejecución del sistema antes de que estas puedan enviar notificaciones.

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

Los cambios en los sistemas de notificación y permisos se basan en la modo de aceptación del comportamiento de las notificaciones de los usuarios que se describen en la sección Lineamientos de implementación.

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

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

Dispositivo con Android 13 Apps orientadas a Android 13 o versiones posteriores Apps orientadas a versiones anteriores a Android 13
Nueva instalación Se bloquearán las notificaciones hasta que la app las solicite.

Las apps controlan cuándo solicitar permisos.

Se bloquearán las notificaciones hasta que el SO lo solicite.

Se solicita permiso en la primera ejecución de la app.

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

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

Se permiten las notificaciones 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 la implementación de referencia, consulta servicio de notificaciones el servicio de permisos y de políticas. Para implementar excepciones, sigue estos pasos: para los controladores de permisos predeterminados, consulta Permisos de tiempo de ejecución.

Durante la implementación, sigue estos lineamientos sobre las notificaciones a los usuarios comportamiento de las apps orientadas a SDK de Android 13 o versiones anteriores:

  • Las apps instaladas recientemente en un dispositivo con Android 13 deben cumplir No deben enviar una notificación sin que el usuario apruebe un mensaje de permiso.
    • Si la app se orienta a las versiones de Android 13 y superior, las notificaciones deben bloquearse hasta que la app lo solicite como app controla cuándo y si solicitar el permiso del usuario.
    • Si la app se orienta a versiones anteriores a Android 13, las notificaciones deben bloquearse hasta que solicita el SO. El SO debe mostrar la solicitud de permiso en la primera ejecución de la aplicación.
  • Cualquier app que existía en el dispositivo antes de actualizar a Android 13 o cualquier app que se haya restablecido mediante una copia de seguridad y restablecer, debe tener permiso para enviar notificaciones hasta que el usuario inicia una actividad desde esa app.

    • Para apps orientadas al SDK de versiones de Android 13 y versiones posteriores, si el usuario no ha personalizado la configuración de notificaciones para esta app a nivel de la app o de NotificationChannel, revoca el permiso temporal otorgamiento de permisos. Luego, las aplicaciones deben solicitar permiso al usuario antes de pueden seguir enviando notificaciones.

      Si una app actualizada orientada a Android 13 no tienes actualmente el permiso de notificaciones a través de la actualización temporal otorgar y el usuario la inició al menos una vez, la aplicación debe mostrar un mensaje de permiso de notificación antes de que se permita que se ejecute en primer plano de Google Cloud.

    • Para las apps que tienen un SDK de destino con versiones anteriores a Android 13 interceptar El primer inicio de la actividad después de que la app haya creado al menos un NotificationChannel Para mostrar un mensaje de permiso que pregunte si el usuario quiere recibir notificaciones desde la app.

      Si un usuario personalizó anteriormente la configuración de notificaciones en el app o el nivel NotificationChannel para una app en el dispositivo que se está actualizando o en un de la copia de seguridad en el dispositivo, se debe migrar la configuración el sistema de permisos con la marca FLAG_PERMISSION_USER_SET. No más Se debe mostrar al usuario la solicitud de permiso de notificación, a menos que la app lo pide específicamente.

  • La copia de seguridad y el restablecimiento deben ser retrocompatibles entre un Dispositivo con Android 13 y un dispositivo de un SO anterior versión. Copia de seguridad de los datos generados a partir de Android 13 debe restablecerse a una versión anterior del SO y crear una copia de seguridad de los datos Se debe restablecer la versión del SO en un dispositivo con Android 13.

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

Validar los cambios en los sistemas de notificación y permisos

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