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