No manifesto do app, declare cada um dos serviços em primeiro plano do app
com um <service>
elemento. Para cada serviço, use um
android:foregroundServiceType atributo
para declarar o tipo de trabalho que o serviço realiza.
Além disso, solicite as permissões necessárias para os serviços em primeiro plano.
Compatibilidade de versões
Os requisitos para declarar os serviços em primeiro plano e solicitar permissões variam de acordo com o nível da API a que o app se destina. Esta página descreve os requisitos para apps destinados ao nível desejado da API 34 ou mais recente. Para informações sobre mudanças nos serviços em primeiro plano em versões anteriores da plataforma, consulte Mudanças nos serviços em primeiro plano.
Declarar serviços em primeiro plano no manifesto do app
O código a seguir mostra como declarar um serviço em primeiro plano de reprodução de mídia. Você pode usar um serviço como esse para tocar 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>
Pontos principais sobre o código
Neste exemplo, o serviço tem apenas um tipo,
media. Se vários tipos se aplicarem ao seu serviço, separe-os com o operador|. Por exemplo, se o serviço usar a câmera e o microfone, declare-o assim:android:foregroundServiceType="camera|microphone"Dependendo do nível da API a que o app se destina, você precisa declarar serviços em primeiro plano no manifesto do app. Os requisitos para níveis específicos da API são descritos em Mudanças nos serviços em primeiro plano.
Se você tentar criar um serviço em primeiro plano e o tipo dele não for declarado no manifesto, o sistema vai gerar uma
MissingForegroundServiceTypeExceptionao chamarstartForeground().Mesmo quando não for necessário, é uma prática recomendada declarar todos os serviços em primeiro plano e fornecer os tipos deles.
Solicitar as permissões de serviço em primeiro plano
O código a seguir mostra como solicitar permissões para um serviço em primeiro plano que usa a câmera.
<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>
Pontos principais sobre o código
- Esse código usa as práticas recomendadas para um app destinado ao nível 34 da API ou mais recente.