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
以 Android 15 或更高版本为目标平台的应用不得通过 BOOT_COMPLETED
广播接收器启动数据同步前台服务。如需了解详情,请参阅对启动前台服务的 BOOT_COMPLETED
广播接收器的限制。
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
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.