Declara servicios en primer plano y solicita permisos

En el manifiesto de tu app, declara cada uno de los servicios en primer plano de tu app con un elemento <service>. Para cada servicio, usa un atributo android:foregroundServiceType para declarar el tipo de trabajo que realiza el servicio.

Además, solicita los permisos que necesiten tus servicios en primer plano.

Compatibilidad de versiones

Los requisitos para declarar tus servicios en primer plano y solicitar permisos varían según el nivel de API al que se orienta tu app. En esta página, se describen los requisitos para las apps que se orientan al nivel de API 34 o versiones posteriores. Para obtener información sobre los cambios en los servicios en primer plano en versiones anteriores de la plataforma, consulta Cambios en los servicios en primer plano.

Declara servicios en primer plano en el manifiesto de la app

En el siguiente código, se muestra cómo declarar un servicio en primer plano de reproducción multimedia. Puedes usar un servicio como este para reproducir música.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
  <application ...>

    <service
        android:name=".MyMediaPlaybackService"
        android:foregroundServiceType="mediaPlayback"
        android:exported="false">
    </service>
  </application>
</manifest>

Puntos clave sobre el código

  • En este ejemplo, el servicio tiene un solo tipo, media. Si se aplican varios tipos a tu servicio, sepáralos con el operador |. Por ejemplo, si tu servicio usa la cámara y el micrófono, decláralo de la siguiente manera:

    android:foregroundServiceType="camera|microphone"
    
  • Según el nivel de API al que se orienta tu app, es posible que se te exija declarar servicios en primer plano en el manifiesto de la app. Los requisitos para niveles de API específicos se describen en Cambios en los servicios en primer plano.

    Si intentas crear un servicio en primer plano y su tipo no se declara en el manifiesto, el sistema arroja una MissingForegroundServiceTypeException cuando se llama a startForeground().

    Incluso cuando no es obligatorio, se recomienda declarar todos los servicios en primer plano y proporcionar sus tipos de servicio.

Solicita los permisos de servicio en primer plano

En el siguiente código, se muestra cómo solicitar permisos para un servicio en primer plano que usa la cámara.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>

    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>

    <application ...>
        ...
    </application>
</manifest>

Puntos clave sobre el código

  • En este código, se usan las prácticas recomendadas para una app que se orienta al nivel de API 34 o versiones posteriores.