Lenguaje

ForegroundService Enumeración

Definición

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

[System.Flags]
public enum ForegroundService
[<System.Flags>]
type ForegroundService = 
Herencia
ForegroundService
Atributos

Campos

Nombre Valor Description
TypeManifest -1

Un valor especial indica que se usan todos los tipos establecidos en el archivo de manifiesto.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeNone 0

Esta constante estaba en desuso en el nivel de API 34. No lo use.

Tipo de servicio de primer plano predeterminado si no se ha establecido en el archivo de manifiesto. Aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores NO deben usar este tipo, al llamar a Service.startForeground(int, android.app.Notification, int) con este tipo se obtendrá una invalidForegroundServiceTypeException.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeDataSync 1

Constante correspondiente a dataSync en el atributo R.attr.foregroundServiceType. Data(photo, file, account) upload/download, backup/restore, import/export, fetch, transfer over network between device and cloud. Este tipo tiene un límite de tiempo de 6 horas a partir de la versión de Android Build.VERSION_CODES. VANILLA_ICE_CREAM. Un servicio en primer plano de este tipo debe detenerse dentro del tiempo de espera de Service.stopSelf(), Context.stopService(android.content.Intent) o sus sobrecargas). Service.stopForeground(int) también funcionará, lo que degradará el servicio a un servicio "en segundo plano", que pronto se detendrá en el sistema. Si el servicio no se detiene dentro del tiempo de espera, se llamará a Service.onTimeout(int, int). Tenga en cuenta también, aunque FOREGROUND_SERVICE_TYPE_DATA_SYNC se puede usar en versiones de Android anteriores a Build.VERSION_CODES. VANILLA_ICE_CREAM, ya que Service.onTimeout(int, int) no existía en dichas versiones, nunca se llamará. Por este motivo, los desarrolladores deben asegurarse de detener el servicio en primer plano incluso si no se llama a Service.onTimeout(int, int) en estas versiones.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeMediaPlayback 2

Constante correspondiente a mediaPlayback en el atributo R.attr.foregroundServiceType. Música, vídeo, noticias u otra reproducción multimedia. Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores requerirán permisos Manifest.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypePhoneCall 4

Constante correspondiente a phoneCall en el atributo R.attr.foregroundServiceType. Operaciones en curso relacionadas con llamadas telefónicas, videoconferencias o comunicación interactiva similar. Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores, requerirá permisos Manifest.permission.FOREGROUND_SERVICE_PHONE_CALL y Manifest.permission.MANAGE_OWN_CALLS o mantener el rol de marcador predeterminado.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeLocation 8

Constante correspondiente a la ubicación en el atributo R.attr.foregroundServiceType. GPS, mapa, actualización de ubicación de navegación. Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores requerirán permisos Manifest.permission.FOREGROUND_SERVICE_LOCATION y uno de los siguientes permisos: Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeConnectedDevice 16

Constante correspondiente a connectedDevice en el atributo R.attr.foregroundServiceType. Conexión automática, bluetooth, TV u otros dispositivos, supervisión e interacción. Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores requerirán permisos Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE y uno de los siguientes permisos: 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 se le ha concedido acceso a uno de los dispositivos o accesorios USB conectados.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeMediaProjection 32

Constante correspondiente a mediaProjection en el atributo foregroundServiceType. Para capturar a través de MediaProjection, una aplicación debe iniciar un servicio en primer plano con el tipo correspondiente a esta constante. Este tipo solo debe usarse para MediaProjection. La captura del contenido de la pantalla mediante createVirtualDisplay permite grabar, presentar contenido de pantalla en una reunión, tomar capturas de pantalla o varios otros escenarios.

Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores requerirán permiso Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION y el usuario debe haber permitido la solicitud de captura de pantalla de esta aplicación.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeCamera 64

Constante correspondiente a la cámara en el atributo R.attr.foregroundServiceType. Use el dispositivo de cámara o grabe vídeo. Para aplicaciones con Build.VERSION_CODES targetSdkVersion. R y versiones posteriores, un servicio en primer plano no podrá acceder a la cámara si este tipo no se especifica en el manifiesto y en Service.startForeground(int, android.app.Notification, int). Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores, requerirá permiso Manifest.permission.FOREGROUND_SERVICE_CAMERA y Manifest.permission.CAMERA.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeMicrophone 128

Constante correspondiente al micrófono en el atributo R.attr.foregroundServiceType. Use el dispositivo de micrófono o grabe audio. Para aplicaciones con Build.VERSION_CODES targetSdkVersion. R y versiones posteriores, un servicio en primer plano no podrá acceder al micrófono si este tipo no se especifica en el manifiesto y en Service.startForeground(int, android.app.Notification, int). Iniciando el servicio en primer plano con este tipo desde aplicaciones destinadas al nivel de API Build.VERSION_CODES. UPSIDE_DOWN_CAKE y versiones posteriores requerirán permisos Manifest.permission.FOREGROUND_SERVICE_MICROPHONE y uno de los siguientes permisos: Manifest.permission.CAPTURE_AUDIO_OUTPUT, Manifest.permission.RECORD_AUDIO.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeHealth 256

Constante correspondiente al estado en el atributo R.attr.foregroundServiceType. Salud, bienestar y fitness. La aplicación de llamada es necesaria para tener los permisos Manifest.permission.FOREGROUND_SERVICE_HEALTH y uno de los siguientes permisos: 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, HealthPermissions.READ_VO2_MAX. Requiere Manifest.permission.FOREGROUND_SERVICE_HEALTH

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_HEALTH.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeRemoteMessaging 512

Constante correspondiente a remoteMessaging en el atributo R.attr.foregroundServiceType. Casos de uso de mensajería que hospedan el servidor local para retransmitir mensajes entre dispositivos. Requiere Manifest.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeSystemExempted 1024

Constante correspondiente a systemExempted en el atributo R.attr.foregroundServiceType. Casos de uso del servicio en primer plano exentos del sistema.

Tenga en cuenta que las aplicaciones solo pueden usar este tipo en los casos siguientes: La aplicación tiene una < interfaz de usuario Process.FIRST_APPLICATION_UID; La aplicación está en la lista de permitidos de Doze; El dispositivo se está ejecutando en modo de demostración; Aplicación de propietario del dispositivo; Aplicaciones de propietario del perfil; Aplicaciones persistentes; Aplicaciones con privilegios de operador; Aplicaciones que tienen el rol android.app.role.RoleManager#ROLE_EMERGENCY; Aplicaciones del sistema sin cabeza; Aplicaciones de administración de dispositivos; Aplicaciones VPN activas; Aplicaciones que contienen Manifest.permission.SCHEDULE_EXACT_ALARM o permiso de Manifest.permission.USE_EXACT_ALARM. Requiere Manifest.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeShortService 2048

Tipo de servicio en primer plano para los servicios de "corta duración", que corresponde a shortService en el atributo R.attr.foregroundServiceType del manifiesto.

A diferencia de otros tipos de servicio en primer plano, este tipo no está asociado a un caso de uso específico y no requerirá ningún permiso especial (además de Manifest.permission.FOREGROUND_SERVICE). Sin embargo, este tipo tiene las restricciones siguientes. El tipo tiene un tiempo de espera de 3 minutos. Un servicio en primer plano de este tipo debe detenerse dentro del tiempo de espera de Service.stopSelf(), Context.stopService(android.content.Intent) o sus sobrecargas). Service.stopForeground(int) también funcionará, lo que degradará el servicio a un servicio "en segundo plano", que pronto se detendrá en el sistema. Si el servicio no se detiene dentro del tiempo de espera, se llamará a Service.onTimeout(int). Tenga en cuenta que, incluso cuando el sistema llama a esta devolución de llamada, no detendrá el servicio automáticamente. Todavía tiene que detener el servicio mediante una de las formas mencionadas anteriormente, incluso cuando se obtiene esta devolución de llamada. Si el servicio todavía no se detiene después de la devolución de llamada, la aplicación se declarará como ANR, después de un breve período de gracia de varios segundos; No se puede hacer un servicio en primer plano de este tipo "pegajoso" (consulte Service.START_STICKY). Es decir, si se elimina una aplicación debido a un bloqueo o memoria insuficiente mientras se ejecuta un breve servicio anterior, el sistema no reiniciará el servicio; Otros servicios en primer plano no se pueden iniciar desde servicios en primer plano cortos. A diferencia de otros tipos de servicio en primer plano, cuando una aplicación se ejecuta en segundo plano mientras solo tiene un servicio en primer plano "corto", no se permite iniciar otros servicios en primer plano, debido a la restricción que se describe aquí: Restricciones en los inicios en segundo plano; Puede combinar varios tipos de servicios en primer plano con |s y puede combinar FOREGROUND_SERVICE_TYPE_SHORT_SERVICE. con otros tipos también. Sin embargo, FOREGROUND_SERVICE_TYPE_SHORT_SERVICE es para situaciones en las que no tiene ningún otro servicio de primer plano válido que se use y el tiempo de espera es suficiente para la tarea y, si puede usar otros tipos, no hay ningún punto al usar este tipo. Por este motivo, si FOREGROUND_SERVICE_TYPE_SHORT_SERVICE se combina con otros tipos de servicio en primer plano, el sistema simplemente lo omitirá y, como resultado, ninguna de las restricciones anteriores se aplicará (por ejemplo, no habrá tiempo de espera).

Tenga en cuenta también, aunque FOREGROUND_SERVICE_TYPE_SHORT_SERVICE se agregó en la versión de Android Build.VERSION_CODES. UPSIDE_DOWN_CAKE, también se puede usar en versiones anteriores de Android (al igual que se pueden usar otros nuevos tipos de servicio en primer plano). Sin embargo, dado que Service.onTimeout(int) no existía en versiones anteriores, nunca se llamará a en dichas versiones. Por este motivo, los desarrolladores deben asegurarse de detener el servicio en primer plano incluso si no se llama a Service.onTimeout(int) en dichas versiones.

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeMediaProcessing 8192

Constante correspondiente a mediaProcessing en el atributo R.attr.foregroundServiceType. Casos de uso de procesamiento multimedia, como la edición y el procesamiento de fotos o vídeos. Este tipo tiene un límite de tiempo de 6 horas. Un servicio en primer plano de este tipo debe detenerse dentro del tiempo de espera de Service.stopSelf(), Context.stopService(android.content.Intent) o sus sobrecargas). Service.stopForeground(int) también funcionará, lo que degradará el servicio a un servicio "en segundo plano", que pronto se detendrá en el sistema. Si el servicio no se detiene dentro del tiempo de espera, se llamará a Service.onTimeout(int, int). Tenga en cuenta también, aunque FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING se agregó en la versión de Android Build.VERSION_CODES. VANILLA_ICE_CREAM, también se puede usar en versiones anteriores de Android (al igual que se pueden usar otros nuevos tipos de servicio en primer plano). Sin embargo, dado que Service.onTimeout(int, int) no existía en versiones anteriores, nunca se llamará en dichas versiones. Por este motivo, los desarrolladores deben asegurarse de detener el servicio en primer plano incluso si no se llama a Service.onTimeout(int, int) en estas versiones. Requiere Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROCESSING

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

TypeSpecialUse 1073741824

Constante correspondiente a specialUse en el atributo R.attr.foregroundServiceType. Casos de uso que no se pueden clasificar en ningún otro tipo de servicio en primer plano, pero que tampoco pueden usar las API jobInfo.Builder.

El uso de este tipo de servicio en primer plano puede restringirse. Además, las aplicaciones deben declarar una propiedad> de nivel <de servicio en AndroidManifest.xml como sugerencia de cuál es el caso de uso exacto aquí.

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

En una versión futura de Android, si la plataforma admite el tipo de servicio en primer plano anterior, para ofrecer la compatibilidad con versiones anteriores, la aplicación podría especificar el atributo android:maxSdkVersion en la <sección uses-permission> y agregar también el tipo de servicio foreground foo a android:foregroundServiceType, por lo que la misma aplicación podría instalarse en ambas 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>

Requiere Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE

Referencia de Android para android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a