Nel file manifest della tua app, dichiara ciascuno dei servizi in primo piano dell'app
con un elemento <service>
. Per ogni servizio, utilizza un attributo
android:foregroundServiceType
per dichiarare il tipo di lavoro svolto dal servizio.
Inoltre, richiedi le autorizzazioni necessarie per i servizi in primo piano.
Compatibilità delle versioni
I requisiti per dichiarare i servizi in primo piano e richiedere le autorizzazioni variano a seconda del livello API a cui è destinata la tua app. Questa pagina descrive i requisiti per le app che hanno come target il livello API 34 o versioni successive. Per informazioni sulle modifiche ai servizi in primo piano nelle versioni precedenti della piattaforma, vedi Modifiche ai servizi in primo piano.
Dichiarare i servizi in primo piano nel manifest dell'app
Il seguente codice mostra come dichiarare un servizio in primo piano di riproduzione multimediale. Potresti utilizzare un servizio come questo per ascoltare musica.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Punti chiave del codice
In questo esempio, il servizio ha un solo tipo,
media
. Se al tuo servizio si applicano più tipi, separali con l'operatore|
. Ad esempio, se il tuo servizio utilizza la fotocamera e il microfono, dichiaralo in questo modo:android:foregroundServiceType="camera|microphone"
A seconda del livello API target della tua app, potresti essere tenuto a dichiarare i servizi in primo piano nel file manifest dell'app. I requisiti per livelli API specifici sono descritti in Modifiche ai servizi in primo piano.
Se provi a creare un servizio in primo piano e il relativo tipo non è dichiarato nel manifest, il sistema genera un'eccezione
MissingForegroundServiceTypeException
quando viene chiamatostartForeground()
.Anche quando non è obbligatorio, è una best practice dichiarare tutti i servizi in primo piano e fornire i relativi tipi di servizio.
Richiedi le autorizzazioni per i servizi in primo piano
Il seguente codice mostra come richiedere le autorizzazioni per un servizio in primo piano che utilizza la fotocamera.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
<application ...>
...
</application>
</manifest>
Punti chiave del codice
- Questo codice utilizza le best practice per un'app che ha come target il livello API 34 o versioni successive.