Cambios en los tipos de servicios en primer plano para Android 15

Realizaremos los siguientes cambios en los tipos de servicios en primer plano con Android 15.

Procesando archivos multimedia

Tipo de servicio en primer plano que se declarará en el manifiesto en
android:foregroundServiceType
mediaProcessing
Permiso para declarar en tu manifiesto
FOREGROUND_SERVICE_MEDIA_PROCESSING
Constante para pasar a startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
Requisitos previos del entorno de ejecución
Ninguno
Descripción

Es un servicio para realizar operaciones que requieren mucho tiempo en los recursos multimedia, como convertir contenido multimedia a diferentes formatos. El sistema le permite a este servicio un tiempo limitado para ejecutarse. En circunstancias normales, este límite de tiempo sería de 6 horas de cada 24. (Todos los servicios en primer plano mediaProcessing de una app comparten este límite).

Tu app debe detener manualmente el servicio de procesamiento de contenido multimedia en la siguiente situación:

Si se alcanza el tiempo de espera, el sistema llama al método Service.onTimeout(int, int) del servicio. En este momento, el servicio tiene unos segundos para llamar a Service.stopSelf(). Si el servicio no llama a Service.stopSelf(), se producirá un error de ANR con este mensaje de error: "Un servicio en primer plano de <fgs_type> no se detuvo dentro del tiempo de espera: <component_name>".

Nota: Service.onTimeout(int, int) no está disponible en Android 14 ni versiones anteriores. En los dispositivos que ejecutan esas versiones, si un servicio de procesamiento de contenido multimedia alcanza el período de tiempo de espera, el sistema almacena en caché la app de inmediato. Por este motivo, tu app no debe esperar a recibir una notificación de tiempo de espera. En su lugar, debe finalizar el servicio en primer plano o cambiarlo a un servicio en segundo plano lo antes posible.

Cámara

Las apps orientadas a Android 15 o versiones posteriores no pueden iniciar un servicio en primer plano de la cámara desde un receptor de emisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones en los receptores de emisión BOOT_COMPLETED que inician servicios en primer plano.

Sincronización de datos

Las apps que se orientan a Android 15 o versiones posteriores no pueden iniciar un servicio en primer plano de sincronización de datos desde un receptor de emisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones en los receptores de emisión BOOT_COMPLETED que inician servicios en primer plano.

Reproducción de contenido multimedia

Las apps orientadas a Android 15 o versiones posteriores no pueden iniciar un servicio en primer plano de reproducción de contenido multimedia desde un receptor de emisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones en los receptores de emisión BOOT_COMPLETED que inician servicios en primer plano.

Proyección de contenido multimedia

Las apps que se orientan a Android 15 o versiones posteriores no pueden iniciar un servicio en primer plano de proyección de contenido multimedia desde un receptor de transmisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones en los receptores de emisión BOOT_COMPLETED que inician servicios en primer plano.

Micrófono

Las apps que se orientan a Android 14 (nivel de API 34) o versiones posteriores no pueden iniciar un servicio en primer plano del micrófono desde un receptor de emisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones en los receptores de emisión BOOT_COMPLETED que inician servicios en primer plano.

Llamada telefónica

Las apps orientadas a Android 15 o versiones posteriores no pueden iniciar un servicio en primer plano de llamada telefónica desde un receptor de emisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones en los receptores de emisión BOOT_COMPLETED que inician servicios en primer plano.