Idioma

ForegroundService Enumeração

Definição

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

[System.Flags]
public enum ForegroundService
[<System.Flags>]
type ForegroundService = 
Herança
ForegroundService
Atributos

Campos

Nome Valor Description
TypeManifest -1

Um valor especial indica usar todos os tipos definidos no arquivo de manifesto.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeNone 0

Essa constante foi preterida no nível 34 da API. Não use.

O tipo de serviço de primeiro plano padrão se não tiver sido definido no arquivo de manifesto. Aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posteriores NÃO devem usar esse tipo, chamar Service.startForeground(int, android.app.Notification, int) com esse tipo obterá um InvalidForegroundServiceTypeException.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeDataSync 1

Constante correspondente a dataSync no atributo R.attr.foregroundServiceType. Dados(foto, arquivo, conta) upload/download, backup/restauração, importação/exportação, busca, transferência pela rede entre o dispositivo e a nuvem. Esse tipo tem um limite de tempo de 6 horas a partir da versão do Android Build.VERSION_CODES. VANILLA_ICE_CREAM. Um serviço em primeiro plano desse tipo deve ser interrompido dentro do tempo limite por Service.stopSelf(), Context.stopService(android.content.Intent) ou suas sobrecargas). Service.stopForeground(int) também funcionará, o que rebaixará o serviço para um serviço "em segundo plano", que será interrompido em breve pelo sistema. Se o serviço não for interrompido dentro do tempo limite, Service.onTimeout(int, int) será chamado. Observe também que, embora FOREGROUND_SERVICE_TYPE_DATA_SYNC possa ser usado em versões do Android antes de Build.VERSION_CODES. VANILLA_ICE_CREAM, como Service.onTimeout(int, int) não existia nessas versões, ele nunca será chamado. Por isso, os desenvolvedores devem parar o serviço em primeiro plano mesmo que Service.onTimeout(int, int) não seja chamado nessas versões.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeMediaPlayback 2

Constante correspondente ao mediaPlayback no atributo R.attr.foregroundServiceType. Música, vídeo, notícias ou outra reprodução de mídia. Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posteriores exigirão permissão Manifest.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypePhoneCall 4

Constante correspondente ao phoneCall no atributo R.attr.foregroundServiceType. Operações em andamento relacionadas a chamadas telefônicas, videoconferência ou comunicação interativa semelhante. Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posterior, exigirá permissão Manifest.permission.FOREGROUND_SERVICE_PHONE_CALL e Manifest.permission.MANAGE_OWN_CALLS ou manter a função de discagem padrão.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeLocation 8

Constante correspondente ao local no atributo R.attr.foregroundServiceType. GPS, mapa, atualização do local de navegação. Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posteriores exigirão permissão Manifest.permission.FOREGROUND_SERVICE_LOCATION e uma das seguintes permissões: Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeConnectedDevice 16

Constante correspondente a connectedDevice no atributo R.attr.foregroundServiceType. Conexão automática, bluetooth, TV ou outros dispositivos, monitoramento e interação. Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posteriores exigirão permissão Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE e uma das seguintes permissões: 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 recebeu o acesso a um dos dispositivos/acessórios USB anexados.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeMediaProjection 32

Constante correspondente a mediaProjection no atributo foregroundServiceType. Para capturar por meio de MediaProjection, um aplicativo deve iniciar um serviço em primeiro plano com o tipo correspondente a essa constante. Esse tipo só deve ser usado para MediaProjection. Capturar conteúdo de tela por meio de createVirtualDisplay convenientemente permite gravar, apresentar conteúdo de tela em uma reunião, tirar capturas de tela ou vários outros cenários.

Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posterior, exigirá permissão Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION e o usuário deve ter permitido a solicitação de captura de tela deste aplicativo.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeCamera 64

Constante correspondente à câmera no atributo R.attr.foregroundServiceType. Use o dispositivo de câmera ou grave o vídeo. Para aplicativos com targetSdkVersion Build.VERSION_CODES. R e acima, um serviço em primeiro plano não poderá acessar a câmera se esse tipo não for especificado no manifesto e em Service.startForeground(int, android.app.Notification, int). Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posterior, exigirá permissão Manifest.permission.FOREGROUND_SERVICE_CAMERA e Manifest.permission.CAMERA.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeMicrophone 128

Constante correspondente ao microfone no atributo R.attr.foregroundServiceType. Use o dispositivo de microfone ou grave o áudio. Para aplicativos com targetSdkVersion Build.VERSION_CODES. R e acima, um serviço em primeiro plano não poderá acessar o microfone se esse tipo não for especificado no manifesto e em Service.startForeground(int, android.app.Notification, int). Iniciando o serviço em primeiro plano com esse tipo de aplicativos direcionados ao nível da API Build.VERSION_CODES. UPSIDE_DOWN_CAKE e posteriores exigirão permissão Manifest.permission.FOREGROUND_SERVICE_MICROPHONE e uma das seguintes permissões: Manifest.permission.CAPTURE_AUDIO_OUTPUT, Manifest.permission.RECORD_AUDIO.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeHealth 256

Constante correspondente à integridade no atributo R.attr.foregroundServiceType. Saúde, bem-estar e fitness. O aplicativo de chamador é necessário para ter as permissões Manifest.permission.FOREGROUND_SERVICE_HEALTH e uma das seguintes permissões: 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,. Requer Manifest.permission.FOREGROUND_SERVICE_HEALTH

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_HEALTH.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeRemoteMessaging 512

Constante correspondente ao remoteMessaging no atributo R.attr.foregroundServiceType. Casos de uso de mensagens que hospedam o servidor local para retransmitir mensagens entre dispositivos. Requer Manifest.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeSystemExempted 1024

Constante correspondente a systemExempted no atributo R.attr.foregroundServiceType. O sistema isentou casos de uso do serviço em primeiro plano.

Observe que os aplicativos têm permissão para usar esse tipo somente nos seguintes casos: o aplicativo tem um Process.FIRST_APPLICATION_UID UID < ; O aplicativo está na lista de permissões do Doze; O dispositivo está em execução no Modo de Demonstração; Aplicativo proprietário do dispositivo; Aplicativos proprietários de perfil; Aplicativos persistentes; Aplicativos privilegiados da operadora; Aplicativos que têm a função android.app.role.RoleManager#ROLE_EMERGENCY; Aplicativos do sistema sem cabeça; Aplicativos de administrador de dispositivos; Aplicativos VPN ativos; Aplicativos com permissão Manifest.permission.SCHEDULE_EXACT_ALARM ou Manifest.permission.USE_EXACT_ALARM. Requer Manifest.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeShortService 2048

Um tipo de serviço em primeiro plano para serviços de "curta duração", que corresponde a shortService no atributo R.attr.foregroundServiceType no manifesto.

Ao contrário de outros tipos de serviço em primeiro plano, esse tipo não está associado a um caso de uso específico e não exigirá permissões especiais (além de Manifest.permission.FOREGROUND_SERVICE). No entanto, esse tipo tem as seguintes restrições. O tipo tem um tempo limite de 3 minutos. Um serviço em primeiro plano desse tipo deve ser interrompido dentro do tempo limite por Service.stopSelf(), Context.stopService(android.content.Intent) ou suas sobrecargas). Service.stopForeground(int) também funcionará, o que rebaixará o serviço para um serviço "em segundo plano", que será interrompido em breve pelo sistema. Se o serviço não for interrompido dentro do tempo limite, Service.onTimeout(int) será chamado. Observe que, mesmo quando o sistema chama esse retorno de chamada, ele não interromperá o serviço automaticamente. Você ainda precisa parar o serviço usando uma das maneiras mencionadas, mesmo quando receber esse retorno de chamada. Se o serviço ainda não for interrompido após o retorno de chamada, o aplicativo será declarado an ANR, após um curto período de carência de vários segundos; Um serviço em primeiro plano desse tipo não pode ser feito "autoadesiva" (consulte Service.START_STICKY). Ou seja, se um aplicativo for morto devido a uma falha ou falta de memória enquanto estiver executando um curto foregorund-service, o sistema não reiniciará o serviço; Outros serviços em primeiro plano não podem ser iniciados a partir de serviços de primeiro plano curtos. Ao contrário de outros tipos de serviço em primeiro plano, quando um aplicativo está em execução em segundo plano enquanto tem apenas um serviço de primeiro plano "curto", ele não tem permissão para iniciar outros serviços em primeiro plano, devido à restrição descrita aqui: Restrições em segundo plano são iniciadas; Você pode combinar vários tipos de serviços em primeiro plano com |s e combinar FOREGROUND_SERVICE_TYPE_SHORT_SERVICE. com outros tipos também. No entanto, FOREGROUND_SERVICE_TYPE_SHORT_SERVICE é para situações em que você não tem nenhum outro serviço de primeiro plano válido a ser usado e o tempo limite é longo o suficiente para a tarefa e, se você pode usar outros tipos, não adianta usar esse tipo. Por esse motivo, se FOREGROUND_SERVICE_TYPE_SHORT_SERVICE for combinado com outros tipos de serviço em primeiro plano, o sistema simplesmente o ignorará e, como resultado, nenhuma das restrições acima será aplicada (por exemplo, não haverá tempo limite).

Observe também, mesmo que FOREGROUND_SERVICE_TYPE_SHORT_SERVICE tenha sido adicionado na versão do Android Build.VERSION_CODES. UPSIDE_DOWN_CAKE, ele também pode ser usado em versões anteriores do Android (assim como outros novos tipos de serviço em primeiro plano podem ser usados). No entanto, como Service.onTimeout(int) não existia em versões anteriores, ele nunca será chamado nessas versões. Por isso, os desenvolvedores devem parar o serviço em primeiro plano mesmo que Service.onTimeout(int) não seja chamado nessas versões.

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeMediaProcessing 8192

Constante correspondente ao mediaProcessing no atributo R.attr.foregroundServiceType. Casos de uso de processamento de mídia, como edição e processamento de fotos ou vídeo. Esse tipo tem um limite de tempo de 6 horas. Um serviço em primeiro plano desse tipo deve ser interrompido dentro do tempo limite por Service.stopSelf(), Context.stopService(android.content.Intent) ou suas sobrecargas). Service.stopForeground(int) também funcionará, o que rebaixará o serviço para um serviço "em segundo plano", que será interrompido em breve pelo sistema. Se o serviço não for interrompido dentro do tempo limite, Service.onTimeout(int, int) será chamado. Observe também, mesmo que FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING tenha sido adicionado à versão do Android Build.VERSION_CODES. VANILLA_ICE_CREAM, ele também pode ser usado em versões anteriores do Android (assim como outros novos tipos de serviço em primeiro plano podem ser usados). No entanto, como Service.onTimeout(int, int) não existia em versões anteriores, ele nunca será chamado nessas versões. Por isso, os desenvolvedores devem parar o serviço em primeiro plano mesmo que Service.onTimeout(int, int) não seja chamado nessas versões. Requer Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROCESSING

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

TypeSpecialUse 1073741824

Constante correspondente a specialUse no atributo R.attr.foregroundServiceType. Use casos que não podem ser categorizados em nenhum outro tipo de serviço em primeiro plano, mas também não podem usar APIs JobInfo.Builder.

O uso desse tipo de serviço em primeiro plano pode ser restrito. Além disso, os aplicativos devem declarar uma propriedade> de nível <de serviço em AndroidManifest.xml como uma dica de qual é o caso de uso exato aqui.

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

Em uma versão futura do Android, se o tipo de serviço em primeiro plano acima for compatível com a plataforma, para oferecer a compatibilidade com versões anteriores, o aplicativo poderá especificar o atributo android:maxSdkVersion na <seção uses-permission> e também adicionar o tipo de serviço em primeiro plano ao android:foregroundServiceType, portanto, o mesmo aplicativo pode ser instalado em ambas as plataformas.

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

Requer Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE

Referência do Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a