Langue

ForegroundService Énumération

Définition

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

[System.Flags]
public enum ForegroundService
[<System.Flags>]
type ForegroundService = 
Héritage
ForegroundService
Attributs

Champs

Nom Valeur Description
TypeManifest -1

Une valeur spéciale indique d’utiliser tous les types définis dans le fichier manifeste.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeNone 0

Cette constante a été déconseillée au niveau de l’API 34. N’utilisez pas.

Type de service de premier plan par défaut s’il n’a pas été défini dans le fichier manifeste. Applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures ne doivent pas utiliser ce type, en appelant Service.startForeground(int, android.app.Notification, int) avec ce type obtient un InvalidForegroundServiceTypeException.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeDataSync 1

Constante correspondant à dataSync dans l’attribut R.attr.foregroundServiceType. Data(photo, fichier, compte) chargement/téléchargement, sauvegarde/restauration, importation/exportation, extraction, transfert sur le réseau entre l’appareil et le cloud. Ce type a une limite de temps de 6 heures à partir de la version Android Build.VERSION_CODES. VANILLA_ICE_CREAM. Un service de premier plan de ce type doit être arrêté dans le délai d’expiration par Service.stopSelf(), Context.stopService(android.content.Intent) ou leurs surcharges. Service.stopForeground(int) fonctionnera également, ce qui rétrogradera le service en un service « en arrière-plan », qui sera bientôt arrêté par le système. Si le service n’est pas arrêté dans le délai d’expiration, Service.onTimeout(int, int) est appelé. Notez également que même si FOREGROUND_SERVICE_TYPE_DATA_SYNC pouvez être utilisé sur des versions Android antérieures à Build.VERSION_CODES. VANILLA_ICE_CREAM, étant donné que Service.onTimeout(int, int) n’existait pas sur ces versions, il ne sera jamais appelé. En raison de cela, les développeurs doivent s’assurer d’arrêter le service de premier plan même si Service.onTimeout(int, int) n’est pas appelé sur ces versions.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeMediaPlayback 2

Constante correspondant à mediaPlayback dans l’attribut R.attr.foregroundServiceType. Musique, vidéo, actualités ou autre lecture multimédia. Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent une autorisation Manifest.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypePhoneCall 4

Constante correspondant à phoneCall dans l’attribut R.attr.foregroundServiceType. Opérations continues liées aux appels téléphoniques, aux conférences vidéo ou à des communications interactives similaires. Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent l’autorisation Manifest.permission.FOREGROUND_SERVICE_PHONE_CALL et Manifest.permission.MANAGE_OWN_CALLS ou la conservation du rôle d’appelant par défaut.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeLocation 8

Constante correspondant à l’emplacement dans l’attribut R.attr.foregroundServiceType. GPS, carte, mise à jour de l’emplacement de navigation. Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent une autorisation Manifest.permission.FOREGROUND_SERVICE_LOCATION et l’une des autorisations suivantes : Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeConnectedDevice 16

Constante correspondant à connectedDevice dans l’attribut R.attr.foregroundServiceType. Connexion automatique, bluetooth, tv ou autres appareils, surveillance et interaction. Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent des autorisations Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE et l’une des autorisations suivantes : Manifest.permission.BLUETOOTH_ADVERTISE, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.CHANGE_NETWORK_STATE, Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, Manifest.permission.NFC, Manifest.permission.TRANSMIT_IR, Manifest.permission.UWB_RANGING, Manifest.permission.RANGING ou a reçu l’accès à l’un des périphériques/accessoires USB attachés.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeMediaProjection 32

Constante correspondant à mediaProjection dans l’attribut foregroundServiceType. Pour capturer via MediaProjection, une application doit démarrer un service de premier plan avec le type correspondant à cette constante. Ce type ne doit être utilisé que pour MediaProjection. La capture du contenu de l’écran via createVirtualDisplay permet facilement d’enregistrer, de présenter le contenu de l’écran dans une réunion, de prendre des captures d’écran ou de plusieurs autres scénarios.

Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent une autorisation Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION, et l’utilisateur doit avoir autorisé la demande de capture d’écran de cette application.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeCamera 64

Constante correspondant à la caméra dans l’attribut R.attr.foregroundServiceType. Utilisez l’appareil photo ou enregistrez la vidéo. Pour les applications avec targetSdkVersion Build.VERSION_CODES. R et versions ultérieures, un service de premier plan ne pourra pas accéder à la caméra si ce type n’est pas spécifié dans le manifeste et dans Service.startForeground(int, android.app.Notification, int). Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent l’autorisation Manifest.permission.FOREGROUND_SERVICE_CAMERA et Manifest.permission.CAMERA.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeMicrophone 128

Constante correspondant au microphone dans l’attribut R.attr.foregroundServiceType. Utilisez l’appareil microphone ou enregistrez l’audio. Pour les applications avec targetSdkVersion Build.VERSION_CODES. R et versions ultérieures, un service de premier plan ne pourra pas accéder au microphone si ce type n’est pas spécifié dans le manifeste et dans Service.startForeground(int, android.app.Notification, int). Démarrage du service de premier plan avec ce type à partir d’applications ciblant le niveau d’API Build.VERSION_CODES. UPSIDE_DOWN_CAKE et versions ultérieures nécessitent des autorisations Manifest.permission.FOREGROUND_SERVICE_MICROPHONE et l’une des autorisations suivantes : Manifest.permission.CAPTURE_AUDIO_OUTPUT, Manifest.permission.RECORD_AUDIO.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeHealth 256

Constante correspondant à l’intégrité dans l’attribut R.attr.foregroundServiceType. Santé, bien-être et fitness. L’application appelante doit disposer des autorisations Manifest.permission.FOREGROUND_SERVICE_HEALTH et de l’une des autorisations suivantes : Manifest.permission.ACTIVITY_RECOGNITION, Manifest.permission.HIGH_SAMPLING_RATE_SENSORS. HealthPermissions.READ_HEART_RATE, HealthPermissions.READ_SKIN_TEMPERATURE, HealthPermissions.READ_OXYGEN_SATURATION, HealthPermissions.READ_BLOOD_PRESSURE, HealthPermissions.READ_HEART_RATE_VARIABILITY, HealthPermissions.READ_RESPIRATORY_RATE, HealthPermissions.READ_VO2_MAX,. Nécessite Manifest.permission.FOREGROUND_SERVICE_HEALTH

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_HEALTH.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeRemoteMessaging 512

Constante correspondant à remoteMessaging dans l’attribut R.attr.foregroundServiceType. Cas d’usage de messagerie qui hébergent le serveur local pour relayer les messages entre les appareils. Nécessite Manifest.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeSystemExempted 1024

Constante correspondant à systemExempted dans l’attribut R.attr.foregroundServiceType. Le système a exempté les cas d’usage du service de premier plan.

Notez que les applications sont autorisées à utiliser ce type uniquement dans les cas suivants : l’application a une Process.FIRST_APPLICATION_UID UID < ; L’application est sur la liste verte Doze ; L’appareil est en cours d’exécution en mode démonstration ; Application propriétaire de l’appareil ; Applications propriétaires de profil ; Applications persistantes ; Applications privilégiées de l’opérateur ; Applications qui ont le rôle android.app.role.RoleManager#ROLE_EMERGENCY ; Applications système sans tête ; Applications d’administration d’appareil ; Applications VPN actives ; Les applications détenant Manifest.permission.SCHEDULE_EXACT_ALARM ou l’autorisation de Manifest.permission.USE_EXACT_ALARM. Nécessite Manifest.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeShortService 2048

Type de service de premier plan pour les services « de courte durée », qui correspond à shortService dans l’attribut R.attr.foregroundServiceType dans le manifeste.

Contrairement à d’autres types de service de premier plan, ce type n’est pas associé à un cas d’usage spécifique et ne nécessite aucune autorisation spéciale (en plus de Manifest.permission.FOREGROUND_SERVICE). Toutefois, ce type a les restrictions suivantes. Le type a un délai d’expiration de 3 minutes. Un service de premier plan de ce type doit être arrêté dans le délai d’expiration par Service.stopSelf(), Context.stopService(android.content.Intent) ou leurs surcharges. Service.stopForeground(int) fonctionnera également, ce qui rétrogradera le service en un service « en arrière-plan », qui sera bientôt arrêté par le système. Si le service n’est pas arrêté dans le délai d’expiration, Service.onTimeout(int) est appelé. Notez que même lorsque le système appelle ce rappel, il n’arrête pas le service automatiquement. Vous devez toujours arrêter le service à l’aide de l’une des méthodes mentionnées ci-dessus même lorsque vous obtenez ce rappel. Si le service n’est toujours pas arrêté après le rappel, l’application est déclarée anr, après une courte période de grâce de plusieurs secondes ; Un service de premier plan de ce type ne peut pas être « collant » (voir Service.START_STICKY). Autrement dit, si une application est tuée en raison d’un incident ou d’une mémoire insuffisante pendant l’exécution d’un court service foregorund, le système ne redémarre pas le service ; Les autres services de premier plan ne peuvent pas être démarrés à partir de services de premier plan courts. Contrairement à d’autres types de services de premier plan, lorsqu’une application s’exécute en arrière-plan tout en ayant uniquement un service de premier plan « court », il n’est pas autorisé à démarrer d’autres services de premier plan, en raison de la restriction décrite ici : Restrictions au démarrage en arrière-plan ; Vous pouvez combiner plusieurs types de services de premier plan avec |s, et vous pouvez combiner FOREGROUND_SERVICE_TYPE_SHORT_SERVICE. avec d’autres types également. Toutefois, FOREGROUND_SERVICE_TYPE_SHORT_SERVICE concerne les situations où vous n’avez pas d’autres services de premier plan valides à utiliser et que le délai d’expiration est suffisamment long pour la tâche, et si vous pouvez utiliser d’autres types, il n’existe aucun point à l’aide de ce type. Pour cette raison, si FOREGROUND_SERVICE_TYPE_SHORT_SERVICE est combiné avec d’autres types de service de premier plan, le système l’ignore simplement et, par conséquent, aucune des restrictions ci-dessus ne s’applique (par exemple, il n’y aura pas de délai d’expiration).

Notez également que même si FOREGROUND_SERVICE_TYPE_SHORT_SERVICE a été ajouté sur la version Android Build.VERSION_CODES. UPSIDE_DOWN_CAKE, il peut également être utilisé sur les versions antérieures d’Android (tout comme d’autres nouveaux types de service de premier plan peuvent être utilisés). Toutefois, étant donné que Service.onTimeout(int) n’existe pas sur les versions antérieures, il n’est jamais appelé sur ces versions. En raison de cela, les développeurs doivent s’assurer d’arrêter le service de premier plan même si Service.onTimeout(int) n’est pas appelé sur ces versions.

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeMediaProcessing 8192

Constante correspondant à mediaProcessing dans l’attribut R.attr.foregroundServiceType. Cas d’usage de traitement multimédia, tels que la vidéo ou l’édition de photos et le traitement. Ce type a une limite de temps de 6 heures. Un service de premier plan de ce type doit être arrêté dans le délai d’expiration par Service.stopSelf(), Context.stopService(android.content.Intent) ou leurs surcharges. Service.stopForeground(int) fonctionnera également, ce qui rétrogradera le service en un service « en arrière-plan », qui sera bientôt arrêté par le système. Si le service n’est pas arrêté dans le délai d’expiration, Service.onTimeout(int, int) est appelé. Notez également que même si FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING a été ajouté dans la version Android Build.VERSION_CODES. VANILLA_ICE_CREAM, il peut également être utilisé sur les versions antérieures d’Android (tout comme d’autres nouveaux types de service de premier plan peuvent être utilisés). Toutefois, étant donné que Service.onTimeout(int, int) n’existait pas sur les versions antérieures, il ne sera jamais appelé sur ces versions. En raison de cela, les développeurs doivent s’assurer d’arrêter le service de premier plan même si Service.onTimeout(int, int) n’est pas appelé sur ces versions. Nécessite Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROCESSING

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

TypeSpecialUse 1073741824

Constante correspondant à specialUse dans l’attribut R.attr.foregroundServiceType. Les cas d’usage qui ne peuvent pas être classés dans d’autres types de service de premier plan, mais qui ne peuvent pas également utiliser les API JobInfo.Builder.

L’utilisation de ce type de service de premier plan peut être restreinte. En outre, les applications doivent déclarer une propriété> de niveau <de service dans AndroidManifest.xml comme indicateur de ce que le cas d’usage exact ici est.

<uses-permission
     android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"
 />
<service
     android:name=".MySpecialForegroundService"
     android:foregroundServiceType="specialUse">
<property
         android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
         android:value="foo"
     />
</service>

Dans une version ultérieure d’Android, si le type de service de premier plan ci-dessus est pris en charge par la plateforme, pour offrir la compatibilité descendante, l’application peut spécifier l’attribut android :maxSdkVersion dans la <section utilisation-autorisation> , et également ajouter le type de service de premier plan foo dans android :foregroundServiceType, par conséquent, la même application peut être installée dans les deux plateformes.

<uses-permission
     android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"
     android:maxSdkVersion="last_sdk_version_without_type_foo"
 />
<service
     android:name=".MySpecialForegroundService"
     android:foregroundServiceType="specialUse|foo">
<property
         android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
         android:value="foo"
     />
</service>

Nécessite Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE

Référence Android pour android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à