Nel file manifest della tua app, dichiara ogni servizio in primo piano 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, consulta Modifiche ai servizi in primo piano.
Dichiara i servizi in primo piano nel file manifest dell'app
Il seguente codice mostra come dichiarare un servizio in primo piano per la riproduzione di contenuti multimediali. Potresti utilizzare un servizio come questo per riprodurre 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 come segue:android:foregroundServiceType="camera|microphone"
A seconda del livello API di destinazione della tua app, potresti essere obbligato 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
MissingForegroundServiceTypeException
alla chiamata distartForeground()
.Anche se non è obbligatorio, è buona prassi dichiarare tutti i servizi in primo piano e fornire i relativi tipi di servizio.
Richiedi le autorizzazioni per i servizi in primo piano
Il codice seguente 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 superiore.