Déclarer des services de premier plan et demander des autorisations

Dans le fichier manifeste de votre application, déclarez chacun de ses services de premier plan avec un élément <service>. Pour chaque service, utilisez un attribut android:foregroundServiceType pour déclarer le type de travail effectué par le service.

En outre, demandez les autorisations requises par vos services de premier plan.

Compatibilité des versions

Les exigences concernant la déclaration de vos services de premier plan et la demande d'autorisations varient en fonction du niveau d'API ciblé par votre application. Cette page décrit les exigences applicables aux applications qui ciblent le niveau d'API 34 ou supérieur. Pour en savoir plus sur les modifications apportées aux services de premier plan dans les versions antérieures de la plate-forme, consultez la section Modifications apportées aux services de premier plan.

Déclarer des services de premier plan dans le fichier manifeste de l'application

Le code suivant montre comment déclarer un service de premier plan de lecture multimédia. Vous pouvez utiliser un service de ce type pour écouter de la musique.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
  <application ...>

    <service
        android:name=".MyMediaPlaybackService"
        android:foregroundServiceType="mediaPlayback"
        android:exported="false">
    </service>
  </application>
</manifest>

Points clés concernant le code

  • Dans cet exemple, le service n'a qu'un seul type, media. Si plusieurs types s'appliquent à votre service, séparez-les avec l'opérateur |. Par exemple, si votre service utilise la caméra et le micro, déclarez-le comme suit:

    android:foregroundServiceType="camera|microphone"
    
  • Selon le niveau d'API ciblé par votre application, vous devrez peut-être déclarer des services de premier plan dans le fichier manifeste de l'application. Les exigences concernant des niveaux d'API spécifiques sont décrites dans la section Modifications apportées aux services de premier plan.

    Si vous essayez de créer un service de premier plan et que son type n'est pas déclaré dans le fichier manifeste, le système génère une erreur MissingForegroundServiceTypeException lors de l'appel de startForeground().

    Même si ce n'est pas obligatoire, il est recommandé de déclarer tous vos services de premier plan et de fournir leurs types de services.

Demander les autorisations pour le service de premier plan

Le code suivant montre comment demander des autorisations pour un service de premier plan qui utilise l'appareil photo.

<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>

Points clés concernant le code

  • Ce code utilise les bonnes pratiques pour une application qui cible le niveau d'API 34 ou version ultérieure.