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

Dans le fichier manifeste de votre application, déclarez chacun des services de premier plan de votre application 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 toutes les autorisations nécessaires à 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 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 par l'opérateur |. Par exemple, si votre service utilise l'appareil photo 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 les services de premier plan dans le fichier manifeste de l'application. Les exigences pour des niveaux d'API spécifiques sont décrites dans 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 exception MissingForegroundServiceTypeException lors de l'appel de startForeground().

    Même lorsque cela 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 de 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 supérieur.