Modifiche ai tipi di servizi in primo piano per Android 15

Stiamo apportando le seguenti modifiche ai tipi di servizi in primo piano con Android 15.

Elaborazione contenuti multimediali in corso

Tipo di servizio in primo piano da dichiarare nel file manifest in
android:foregroundServiceType
mediaProcessing
Autorizzazione da dichiarare nel manifest
FOREGROUND_SERVICE_MEDIA_PROCESSING
Costante per passare a startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
Prerequisiti di runtime
Nessuno
Descrizione

Servizio per l'esecuzione di operazioni dispendiose in termini di tempo sugli asset multimediali, come la conversione dei contenuti multimediali in formati diversi. Il sistema consente l'esecuzione di questo servizio per un tempo limitato; in circostanze normali, questo limite di tempo è di 6 ore ogni 24. Questo limite è condiviso da tutti i mediaProcessing servizi in primo piano di un'app.

L'app deve interrompere manualmente il servizio di elaborazione dei contenuti multimediali nel seguente scenario:

Se viene raggiunto il periodo di timeout, il sistema chiama il metodo Service.onTimeout(int, int) del servizio. In questo momento, il servizio ha pochi secondi per chiamare Service.stopSelf(). Se il servizio non chiama Service.stopSelf(), si verificherà un errore ANR con questo messaggio di errore: "Un servizio in primo piano di <fgs_type> non è stato interrotto durante il timeout: <component_name>".

Nota: Service.onTimeout(int, int) non è disponibile su Android 14 o versioni precedenti. Sui dispositivi che eseguono queste versioni, se un servizio di elaborazione multimediale raggiunge il periodo di timeout, il sistema memorizza immediatamente l'app nella cache. Per questo motivo, l'app non deve attendere di ricevere una notifica di timeout. Dovrebbe invece terminare il servizio in primo piano o passare a un servizio in background non appena opportuno.

Fotocamera

Le app destinate ad Android 15 o versioni successive non possono avviare un servizio in primo piano della fotocamera da un ricevitore BOOT_COMPLETED. Per maggiori informazioni, consulta le limitazioni relative ai ricevitori di trasmissioni BOOT_COMPLETED che avviano i servizi in primo piano.

Sincronizzazione dati

Le app destinate ad Android 15 o versioni successive non possono avviare un servizio di sincronizzazione dei dati in primo piano da un ricevitore di trasmissione BOOT_COMPLETED. Per maggiori informazioni, consulta le limitazioni relative ai ricevitori di trasmissioni BOOT_COMPLETED che avviano i servizi in primo piano.

Riproduzione di contenuti multimediali

Le app destinate ad Android 15 o versioni successive non possono avviare un servizio di riproduzione multimediale in primo piano da un ricevitore BOOT_COMPLETED. Per maggiori informazioni, consulta le limitazioni relative ai ricevitori di trasmissioni BOOT_COMPLETED che avviano i servizi in primo piano.

Proiezione di contenuti multimediali

Le app destinate ad Android 15 o versioni successive non possono lanciare un servizio in primo piano di proiezione di contenuti multimediali da un ricevitore BOOT_COMPLETED. Per maggiori informazioni, consulta le limitazioni relative ai ricevitori di trasmissioni BOOT_COMPLETED che avviano i servizi in primo piano.

Microfono

Le app destinate ad Android 14 (livello API 34) o versioni successive non possono avviare un servizio in primo piano con microfono da un ricevitore di trasmissione BOOT_COMPLETED. Per maggiori informazioni, consulta le limitazioni relative ai ricevitori di trasmissioni BOOT_COMPLETED che avviano i servizi in primo piano.

Telefonata

Le app destinate ad Android 15 o versioni successive non possono lanciare un servizio in primo piano per le chiamate da un ricevitore BOOT_COMPLETED. Per maggiori informazioni, consulta le limitazioni relative ai ricevitori di trasmissioni BOOT_COMPLETED che avviano i servizi in primo piano.