La documentation sur les services de premier plan décrit le comportement actuel des services de premier plan Android. La documentation fournit des conseils sur les bonnes pratiques pour la plupart des applications, qu'elles ciblent ou non la version la plus récente d'Android.
Cette page décrit certaines des modifications les plus récentes et les plus importantes apportées aux services de premier plan, ainsi que les conséquences pour les applications qui ne ciblent pas la version la plus récente de la plate-forme Android. Dans de nombreux cas, les bonnes pratiques qui étaient facultatives pour les applications ciblant des niveaux d'API inférieurs deviennent obligatoires pour les applications ciblant des niveaux d'API supérieurs.
Android 9 (niveau d'API 28)
Android 9 introduit l'autorisation FOREGROUND_SERVICE
. Les applications exécutées sur Android 9 qui utilisent des services de premier plan doivent disposer de cette autorisation.
Si une application qui cible le niveau d'API 28 ou version ultérieure tente de créer un service de premier plan sans demander l'autorisation FOREGROUND_SERVICE
, le système génère une exception SecurityException
.
Android 10 (niveau d'API 29)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 29 ou supérieur:
- Si les services de premier plan d'une application utilisent des informations de localisation, l'application doit déclarer le service avec le type de service
location
.
Android 11 (niveau d'API 30)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 30 ou supérieur:
- Si les services de premier plan d'une application utilisent l'appareil photo ou le micro, l'application doit déclarer le service avec le type de service
camera
oumicrophone
, respectivement.
Android 12 (niveau d'API 31)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 31 ou supérieur:
- Les applications ne sont pas autorisées à lancer des services de premier plan lorsqu'elles sont en arrière-plan, à quelques exceptions près. Pour en savoir plus et connaître les exceptions à cette règle, consultez la section Restrictions concernant le démarrage d'un service de premier plan en arrière-plan.
Android 14 (niveau d'API 34)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 34 ou supérieur:
- Vous devez déclarer tous les services de premier plan avec leurs types de services.
- Les applications doivent demander le type d'autorisation approprié pour le type de travail que le service de premier plan effectuera. Chaque type de service de premier plan est associé à un type d'autorisation. Par exemple, si une application lance un service de premier plan qui utilise l'appareil photo, vous devez demander les autorisations
FOREGROUND_SERVICE
etFOREGROUND_SERVICE_CAMERA
. Si une application cible le niveau d'API 34 ou supérieur et ne demande pas l'autorisation spécifique appropriée, le système génère une exceptionSecurityException
.
Android 15 (niveau d'API 35)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 35 ou supérieur:
- De nouvelles restrictions sont appliquées à la durée d'exécution d'un service de premier plan
dataSync
. Ces restrictions sont décrites dans la section Comportement de délai avant expiration des services de premier plan. Des restrictions similaires s'appliquent au type de service de premier planmediaProcessing
(nouveau dans Android 15). - Les services de premier plan
BOOT_COMPLETED
ne sont plus autorisés à lancer certains services de premier plan. - Les applications qui disposent de l'autorisation
SYSTEM_ALERT_WINDOW
ne sont autorisées à lancer des services de premier plan en arrière-plan que si elles disposent actuellement d'une fenêtre de superposition visible (ou si elles répondent à l'une des autres exceptions aux restrictions de démarrage en arrière-plan). Auparavant, l'exemption pour ces applications était plus large.