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:foregroundServiceTypemediaProcessing- 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
mediaProcessingde 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
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
Apps that target Android 15 or higher are not allowed to launch a
data sync foreground service from a BOOT_COMPLETED broadcast receiver.
For more information, see
Restrictions on BOOT_COMPLETED broadcast receivers launching foreground
services.
Reproducción de contenido multimedia
Apps that target Android 15 or higher are not allowed to launch a
media playback foreground service from a BOOT_COMPLETED broadcast receiver.
For more information, see
Restrictions on BOOT_COMPLETED broadcast receivers launching foreground
services.
Proyección de contenido multimedia
Apps that target Android 15 or higher are not allowed to launch a
media projection foreground service from a BOOT_COMPLETED broadcast receiver.
For more information, see
Restrictions on BOOT_COMPLETED broadcast receivers launching foreground
services.
Micrófono
Apps that target Android 14 (API level 34) or higher are not allowed to launch a
microphone foreground service from a BOOT_COMPLETED broadcast receiver.
For more information, see
Restrictions on BOOT_COMPLETED broadcast receivers launching foreground
services.
Llamada telefónica
Apps that target Android 15 or higher are not allowed to launch a
phone call foreground service from a BOOT_COMPLETED broadcast receiver.
For more information, see
Restrictions on BOOT_COMPLETED broadcast receivers launching foreground
services.