La documentazione del servizio in primo piano descrive il comportamento attuale dei servizi in primo piano di Android. La documentazione fornisce indicazioni sulle best practice per la maggior parte delle app, indipendentemente dal fatto che abbiano come target la versione più recente di Android.
Questa pagina descrive alcune delle modifiche importanti più recenti ai servizi in primo piano e le implicazioni per le app che non hanno come target la versione più recente della piattaforma Android. In molti casi, le best practice che erano facoltative per le app che hanno come target livelli API inferiori diventano obbligatorie per le app che hanno come target livelli API superiori.
Android 9 (livello API 28)
Android 9 introduce l'autorizzazione
FOREGROUND_SERVICE
. Le app in esecuzione su Android 9 che utilizzano i servizi in primo piano devono disporre di questa autorizzazione.
Se un'app che ha come target il livello API 28 o versioni successive tenta di creare un servizio in primo piano senza richiedere l'autorizzazione FOREGROUND_SERVICE
, il sistema genera un SecurityException
.
Android 10 (livello API 29)
I seguenti requisiti si applicano alle app che hanno come target il livello API 29 o versioni successive:
- Se i servizi in primo piano di un'app utilizzano i dati sulla posizione, l'app deve
dichiarare il servizio con il tipo di servizio
location
.
Android 11 (livello API 30)
I seguenti requisiti si applicano alle app che hanno come target il livello API 30 o versioni successive:
- Se i servizi in primo piano di un'app utilizzano la fotocamera o il microfono, l'app deve
dichiarare il servizio con il tipo di servizio
camera
omicrophone
.
Android 12 (livello API 31)
I seguenti requisiti si applicano alle app che hanno come target il livello API 31 o versioni successive:
- Le app non sono autorizzate ad avviare servizi in primo piano mentre sono in background, con alcune eccezioni specifiche. Per ulteriori informazioni e per informazioni sulle eccezioni a questa regola, consulta Limitazioni per l'avvio di un servizio in primo piano da un'app in background.
Android 14 (livello API 34)
I seguenti requisiti si applicano alle app che hanno come target il livello API 34 o versioni successive:
- Devi dichiarare tutti i servizi in primo piano con i relativi tipi di servizio.
- Le app devono richiedere il tipo di autorizzazione appropriato per il tipo di lavoro che svolgerà il servizio in primo piano. Ogni tipo di servizio in primo piano
ha un tipo di autorizzazione corrispondente. Ad esempio, se un'app avvia un servizio in primo piano che utilizza la fotocamera, devi richiedere sia le autorizzazioni
FOREGROUND_SERVICE
siaFOREGROUND_SERVICE_CAMERA
. Se un'app ha come target il livello API 34 o versioni successive e non richiede l'autorizzazione specifica appropriata, il sistema genera unSecurityException
.
Android 15 (livello API 35)
I seguenti requisiti si applicano alle app che hanno come target il livello API 35 o versioni successive:
- Esistono nuove limitazioni alla durata di un servizio in primo piano
dataSync
. Queste limitazioni sono descritte in Comportamento del timeout del servizio in primo piano. Restrizioni simili si applicano al tipo di servizio in primo pianomediaProcessing
(novità di Android 15). - I servizi in primo piano
BOOT_COMPLETED
non sono più autorizzati ad avviare determinati servizi in primo piano. - Le app che dispongono dell'autorizzazione
SYSTEM_ALERT_WINDOW
possono avviare servizi in primo piano da background solo se al momento hanno una finestra in overlay visibile (o se soddisfano una delle altre esenzioni dalle limitazioni di avvio in background). In precedenza, l'esenzione per queste app era più ampia.