No manifesto do app, declare cada um dos serviços em primeiro plano
com um elemento <service>
. Para cada serviço, use um
android:foregroundServiceType
atributo
para declarar o tipo de trabalho que ele realiza.
Além disso, solicite as permissões necessárias para seus serviços em primeiro plano.
Compatibilidade de versões
Os requisitos para declarar seus serviços em primeiro plano e solicitar permissões variam de acordo com o nível da API segmentado pelo app. Esta página descreve os requisitos para apps destinados ao nível 34 da API 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 assim:android:foregroundServiceType="camera|microphone"
Dependendo do nível da API a que seu app se destina, talvez seja necessário declarar serviços em primeiro plano no manifesto do app. Os requisitos para níveis de API específicos 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
MissingForegroundServiceTypeException
ao chamarstartForeground()
.Mesmo quando não é obrigató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 práticas recomendadas para um app destinado ao nível 34 da API ou mais recente.