Las notificaciones en Android 13 utilizan un modelo de suscripción voluntaria, que es un cambio con respecto a las versiones anteriores de Android, que utilizan un modelo de exclusión voluntaria. En Android 13, todas las aplicaciones deben solicitar permiso a los usuarios antes de enviar mensajes 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 respaldar el modelo de participación voluntaria, 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 voluntaria
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 notificaciones. 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 participación voluntaria del comportamiento de notificación del usuario y se describen en la sección Pautas para la implementación .
Comportamiento de las notificaciones de usuario en un modelo de suscripción voluntaria
La siguiente tabla ilustra el comportamiento de notificación para varias versiones de aplicaciones en un dispositivo con Android 13:
Dispositivo en Android 13 | Aplicaciones dirigidas a Android 13 o superior | Aplicaciones orientadas a versiones inferiores a Android 13 |
---|---|---|
Nueva instalación | Las notificaciones se bloquean hasta que la aplicación las solicite. Las aplicaciones controlan cuándo pedir permiso. | Las notificaciones se bloquean hasta que el sistema operativo las solicite. Se solicita 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 las solicite. Se concede un permiso temporal hasta que la aplicación lo solicite en la primera carrera de clasificación. | Las notificaciones están permitidas hasta que el sistema operativo las solicite. Se concede permiso temporal hasta la primera ejecución de la aplicación. |
Directrices para la implementación
Para la 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, utilice las siguientes pautas sobre el comportamiento de notificación del usuario para aplicaciones orientadas 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 está dirigida a las versiones de Android 13 y superiores, las notificaciones deben bloquearse hasta que la aplicación las solicite, ya que la aplicación controla cuándo y si solicitar permiso al usuario.
- Si la aplicación apunta a versiones inferiores 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 haya restaurado 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 orientadas al SDK de las versiones Android 13 y superiores, si el usuario no ha personalizado previamente la configuración de notificación 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 dirigida 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 mensaje 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 inferiores 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 pregunte si el usuario desea recibir notificaciones de la aplicación.Si un usuario previamente personalizó la configuración de notificación 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 del nivel de aplicación se debe migrar al sistema de permisos con el indicadorFLAG_PERMISSION_USER_SET
. No se debe mostrar ninguna notificación adicional de permiso al usuario a menos que la aplicación así lo solicite específicamente.
La copia de seguridad y la restauración deben ser compatibles con versiones anteriores y posteriores entre un dispositivo con Android 13 y un dispositivo con una versión anterior del sistema operativo. Los datos de respaldo generados desde un dispositivo con Android 13 deben restaurarse en una versión anterior del sistema operativo, y los datos de respaldo de una versión anterior del sistema operativo deben restaurarse en un dispositivo con Android 13.
Las notificaciones multimedia asociadas con la reproducción multimedia en curso deben estar exentas del permiso de notificación.
Validar cambios en los sistemas de notificación y permisos.
Para validar la implementación, ejecute las siguientes pruebas:
Pruebas unitarias como se especifica en
PreferencesHelperTest
,NotificationManagerServiceTest
.Cualquier prueba manual que pruebe actualizaciones, copias de seguridad y restauración.
Cualquier prueba del sistema de permisos y notificaciones CTS que envíe notificaciones. Algunas de estas pruebas se encuentran en cts/tests/tests/permission/ , NotificationManagerTest.java y cts/tests/tests/notificationlegacy/ .