ForegroundService Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 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 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 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. 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 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.
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.
Richiede Manifest.permission.FOREGROUND_SERVICE_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. |