Lingua

ForegroundService Enumerazione

Definizione

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

[System.Flags]
public enum ForegroundService
[<System.Flags>]
type ForegroundService = 
Ereditarietà
ForegroundService
Attributi

Campi

Nome Valore Descrizione
TypeManifest -1

Un valore speciale indica di usare tutti i tipi impostati nel file manifesto.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeNone 0

Questa costante è stata deprecata nel livello API 34. Non usare.

Tipo di servizio in primo piano predefinito se non è stato impostato nel file manifesto. App destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive non devono usare questo tipo, la chiamata a Service.startForeground(int, android.app.Notification, int) con questo tipo otterrà un'eccezione InvalidForegroundServiceTypeException.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeDataSync 1

Costante corrispondente a dataSync nell'attributo R.attr.foregroundServiceType. Data(photo, file, account) upload/download, backup/restore, import/export, fetch, transfer over network between device and cloud.Data(photo, file, account) upload/download, backup/restore, import/export, fetch, transfer over network between device and cloud. Questo tipo ha un limite di tempo di 6 ore a partire dalla versione di Android Build.VERSION_CODES. VANILLA_ICE_CREAM. Un servizio in primo piano di questo tipo deve essere arrestato entro il timeout da Service.stopSelf(), Context.stopService(android.content.Intent) o i relativi overload. Service.stopForeground(int) funzionerà anche, riducendo il servizio a un servizio "in background", che verrà presto arrestato dal sistema. Se il servizio non viene arrestato entro il timeout, verrà chiamato Service.onTimeout(int, int). Si noti anche che, anche se FOREGROUND_SERVICE_TYPE_DATA_SYNC può essere usato nelle versioni di Android prima di Build.VERSION_CODES. VANILLA_ICE_CREAM, poiché Service.onTimeout(int, int) non esiste in tali versioni, non verrà mai chiamato. Per questo motivo, gli sviluppatori devono assicurarsi di arrestare il servizio in primo piano anche se Service.onTimeout(int, int) non viene chiamato in tali versioni.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeMediaPlayback 2

Costante corrispondente a mediaPlayback nell'attributo R.attr.foregroundServiceType. Musica, video, notizie o altra riproduzione multimediale. Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederà l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypePhoneCall 4

Costante corrispondente a phoneCall nell'attributo R.attr.foregroundServiceType. Operazioni in corso correlate a telefonate, videoconferenze o comunicazioni interattive simili. Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederà l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_PHONE_CALL e Manifest.permission.MANAGE_OWN_CALLS o con il ruolo dialer predefinito.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeLocation 8

Costante corrispondente alla posizione nell'attributo R.attr.foregroundServiceType. GPS, mappa, aggiornamento della posizione di navigazione. Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederanno l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_LOCATION e una delle autorizzazioni seguenti: Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeConnectedDevice 16

Costante corrispondente a connectedDevice nell'attributo R.attr.foregroundServiceType. Connessione automatica, bluetooth, TV o altri dispositivi, monitoraggio e interazione. Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederanno l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE e una delle autorizzazioni seguenti: 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 o è stato concesso l'accesso a uno dei dispositivi/accessori USB collegati.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeMediaProjection 32

Costante corrispondente a mediaProjection nell'attributo foregroundServiceType. Per acquisire tramite MediaProjection, un'app deve avviare un servizio in primo piano con il tipo corrispondente a questa costante. Questo tipo deve essere utilizzato solo per MediaProjection. L'acquisizione del contenuto dello schermo tramite createVirtualDisplay consente di registrare, presentare contenuti dello schermo in una riunione, acquisire screenshot o molti altri scenari.

Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederà l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION e l'utente deve avere consentito la richiesta di acquisizione dello schermo da questa app.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeCamera 64

Costante corrispondente alla fotocamera nell'attributo R.attr.foregroundServiceType. Usare il dispositivo fotocamera o registrare video. Per le app con targetSdkVersion Build.VERSION_CODES. R e versioni successive, un servizio in primo piano non sarà in grado di accedere alla fotocamera se questo tipo non è specificato nel manifesto e in Service.startForeground(int, android.app.Notification, int). Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederà l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_CAMERA e Manifest.permission.CAMERA.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeMicrophone 128

Costante corrispondente al microfono nell'attributo R.attr.foregroundServiceType. Usare il dispositivo microfono o registrare l'audio. Per le app con targetSdkVersion Build.VERSION_CODES. R e versioni successive, un servizio in primo piano non sarà in grado di accedere al microfono se questo tipo non è specificato nel manifesto e in Service.startForeground(int, android.app.Notification, int). Avvio del servizio in primo piano con questo tipo da app destinate a livello di API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e versioni successive richiederà l'autorizzazione Manifest.permission.FOREGROUND_SERVICE_MICROPHONE e una delle autorizzazioni seguenti: Manifest.permission.CAPTURE_AUDIO_OUTPUT, Manifest.permission.RECORD_AUDIO.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeHealth 256

Costante corrispondente all'integrità nell'attributo R.attr.foregroundServiceType. Salute, benessere e fitness. L'app chiamante deve avere le autorizzazioni Manifest.permission.FOREGROUND_SERVICE_HEALTH e una delle autorizzazioni seguenti: 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, Richiede Manifest.permission.FOREGROUND_SERVICE_HEALTH

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_HEALTH.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeRemoteMessaging 512

Costante corrispondente alla messaggistica remota nell'attributo R.attr.foregroundServiceType. Casi d'uso della messaggistica che ospitano il server locale per l'inoltro dei messaggi tra i dispositivi. Richiede Manifest.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeSystemExempted 1024

Costante corrispondente a systemExempted nell'attributo R.attr.foregroundServiceType. Casi d'uso del servizio in primo piano esentati dal sistema.

Nota, le app possono usare questo tipo solo nei casi seguenti: l'app ha un uid < Process.FIRST_APPLICATION_UID; L'app è in Doze allowlist; Il dispositivo è in esecuzione in modalità Demo; App proprietario del dispositivo; Profila le app proprietarie; App persistenti; App con privilegi del gestore telefonico; App con ruolo android.app.role.RoleManager#ROLE_EMERGENCY; App di sistema headless; App di amministrazione del dispositivo; App VPN attive; Le app che contengono Manifest.permission.SCHEDULE_EXACT_ALARM o autorizzazioni di Manifest.permission.USE_EXACT_ALARM. Richiede Manifest.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeShortService 2048

Tipo di servizio in primo piano per i servizi "di breve durata", che corrisponde a shortService nell'attributo R.attr.foregroundServiceType nel manifesto.

A differenza di altri tipi di servizio in primo piano, questo tipo non è associato a un caso d'uso specifico e non richiede alcuna autorizzazione speciale (oltre a Manifest.permission.FOREGROUND_SERVICE). Tuttavia, questo tipo presenta le restrizioni seguenti. Il tipo ha un timeout di 3 minuti. Un servizio in primo piano di questo tipo deve essere arrestato entro il timeout da Service.stopSelf(), Context.stopService(android.content.Intent) o i relativi overload. Service.stopForeground(int) funzionerà anche, riducendo il servizio a un servizio "in background", che verrà presto arrestato dal sistema. Se il servizio non viene arrestato entro il timeout, verrà chiamato Service.onTimeout(int). Si noti che, anche quando il sistema chiama questo callback, non arresterà automaticamente il servizio. È comunque necessario arrestare il servizio usando uno dei modi indicati in precedenza anche quando si ottiene questo callback. Se il servizio non viene ancora arrestato dopo il callback, l'app verrà dichiarata anr dopo un breve periodo di tolleranza di alcuni secondi; Un servizio in primo piano di questo tipo non può essere reso "sticky" (vedere Service.START_STICKY). Ovvero, se un'app viene terminata a causa di un arresto anomalo o di memoria insufficiente durante l'esecuzione di un breve servizio non eseguito, il sistema non riavvia il servizio; Non è possibile avviare altri servizi in primo piano da brevi servizi in primo piano. A differenza di altri tipi di servizio in primo piano, quando un'app è in esecuzione in background mentre ha solo un servizio in primo piano "breve", non è consentito avviare altri servizi in primo piano, a causa della restrizione descritta qui: Restrizioni all'avvio in background; È possibile combinare più tipi di servizi in primo piano con |s ed è possibile combinare FOREGROUND_SERVICE_TYPE_SHORT_SERVICE. anche con altri tipi. Tuttavia, FOREGROUND_SERVICE_TYPE_SHORT_SERVICE è per situazioni in cui non si dispone di altri servizi in primo piano validi da usare e il timeout è sufficientemente lungo per l'attività e, se è possibile usare altri tipi, non c'è alcun punto usando questo tipo. Per questo motivo, se FOREGROUND_SERVICE_TYPE_SHORT_SERVICE viene combinato con altri tipi di servizio in primo piano, il sistema lo ignorerà semplicemente e, di conseguenza, nessuna delle restrizioni precedenti verrà applicata (ad esempio non vi sarà alcun timeout).

Si noti anche se FOREGROUND_SERVICE_TYPE_SHORT_SERVICE è stato aggiunto in Android versione Build.VERSION_CODES. UPSIDE_DOWN_CAKE, può essere usato anche nelle versioni precedenti di Android (come altri nuovi tipi di servizio in primo piano possono essere usati). Tuttavia, poiché Service.onTimeout(int) non esisteva nelle versioni precedenti, non verrà mai chiamato in tali versioni. Per questo motivo, gli sviluppatori devono assicurarsi di arrestare il servizio in primo piano anche se Service.onTimeout(int) non viene chiamato in tali versioni.

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeMediaProcessing 8192

Costante corrispondente a mediaProcessing nell'attributo R.attr.foregroundServiceType. Casi d'uso per l'elaborazione di contenuti multimediali, ad esempio la modifica e l'elaborazione di foto o video. Questo tipo ha un limite di tempo di 6 ore. Un servizio in primo piano di questo tipo deve essere arrestato entro il timeout da Service.stopSelf(), Context.stopService(android.content.Intent) o i relativi overload. Service.stopForeground(int) funzionerà anche, riducendo il servizio a un servizio "in background", che verrà presto arrestato dal sistema. Se il servizio non viene arrestato entro il timeout, verrà chiamato Service.onTimeout(int, int). Si noti anche se FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING è stato aggiunto in Android versione Build.VERSION_CODES. VANILLA_ICE_CREAM, può essere usato anche nelle versioni precedenti di Android (come altri nuovi tipi di servizio in primo piano possono essere usati). Tuttavia, poiché Service.onTimeout(int, int) non esisteva nelle versioni precedenti, non verrà mai chiamato in tali versioni. Per questo motivo, gli sviluppatori devono assicurarsi di arrestare il servizio in primo piano anche se Service.onTimeout(int, int) non viene chiamato in tali versioni. Richiede Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROCESSING

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

TypeSpecialUse 1073741824

Costante corrispondente a specialUse nell'attributo R.attr.foregroundServiceType. I casi d'uso che non possono essere classificati in altri tipi di servizio in primo piano, ma non possono usare anche le API JobInfo.Builder.

L'uso di questo tipo di servizio in primo piano può essere limitato. Inoltre, le app devono dichiarare una proprietà> a livello <di servizio in AndroidManifest.xml come suggerimento del caso d'uso esatto qui.

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

In una versione futura di Android, se il tipo di servizio in primo piano precedente è supportato dalla piattaforma, per offrire la compatibilità con le versioni precedenti, l'app potrebbe specificare l'attributo android:maxSdkVersion nella <sezione uses-permission> e aggiungere anche il tipo di servizio in primo piano foo in android:foregroundServiceType, pertanto la stessa app potrebbe essere installata in entrambe le piattaforme.

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

Richiede Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE

Informazioni di riferimento su Android per android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a