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

Estamos realizando 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
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

Servicio para realizar operaciones que requieren mucho tiempo en elementos multimedia, como la conversión de contenido multimedia a diferentes formatos. El sistema permite que este servicio se ejecute por un tiempo limitado; en circunstancias normales, este límite de tiempo sería de 6 horas cada 24. (Este límite se comparte con todos los servicios en primer plano de mediaProcessing de una app).

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 durante el tiempo de espera: <component_name>".

Nota: Service.onTimeout(int, int) no está disponible en Android 14 o versiones anteriores. En los dispositivos que ejecutan esas versiones, si un servicio de procesamiento de contenido multimedia alcanza el tiempo de espera, el sistema almacena la app de inmediato en caché. 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 uno en segundo plano tan pronto como sea necesario.

Cámara

Apps that target Android 15 or higher are not allowed to launch a camera foreground service from a BOOT_COMPLETED broadcast receiver. For more information, see Restrictions on BOOT_COMPLETED broadcast receivers launching foreground services.

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 sobre los receptores de emisión de 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 de reproducción de contenido multimedia en primer plano desde un receptor de emisión BOOT_COMPLETED. Para obtener más información, consulta Restricciones sobre los receptores de emisión de BOOT_COMPLETED que inician servicios en primer plano.

Proyección de contenido multimedia

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

Micrófono

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

Llamada telefónica

Las apps que se orientan 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 sobre los receptores de emisión de BOOT_COMPLETED que inician servicios en primer plano.