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:
- Cuando finalice la operación de transcodificación o alcance un estado de error, haz que el servicio llame a
Service.stopForeground()
yService.stopSelf()
para detenerlo por completo.
- Cuando finalice la operación de transcodificación o alcance un estado de error, haz que el servicio llame a
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 aService.stopSelf()
. Si el servicio no llama aService.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.