Declarar serviços em primeiro plano e solicitar permissões
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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 chamar startForeground()
.
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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-21 UTC.
[null,null,["Última atualização 2025-08-21 UTC."],[],[],null,["# Declare foreground services and request permissions\n\nIn your app's manifest, declare each of your app's foreground services\nwith a [`\u003cservice\u003e`](/guide/topics/manifest/service-element)\nelement. For each service, use an\n[`android:foregroundServiceType` attribute](/develop/background-work/services/fgs/service-types)\nto declare what kind of work the service does.\n\nIn addition, request any permissions needed by your foreground services.\n| **Important:** All foreground service declarations must comply with the requirements in the [Google Play Device and Network Abuse policy](https://support.google.com/googleplay/android-developer/answer/9888379) and the Google Play [Understanding foreground service requirements\n| documentation](https://support.google.com/googleplay/android-developer/answer/13392821).\n\nVersion compatibility\n---------------------\n\nThe requirements for declaring your foreground services and requesting\npermissions vary depending on what API level your app targets. This page\ndescribes the requirements for apps that target API level 34 or higher. For\ninformation about changes to foreground services in earlier platform versions,\nsee [Changes to foreground services](/develop/background-work/services/fgs/changes).\n\nDeclare foreground services in the app manifest\n-----------------------------------------------\n\nThe following code shows how to declare a media playback foreground service.\nYou might use a service like this to play music. \n\n \u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\" ...\u003e\n \u003capplication ...\u003e\n\n \u003cservice\n android:name=\".MyMediaPlaybackService\"\n android:foregroundServiceType=\"mediaPlayback\"\n android:exported=\"false\"\u003e\n \u003c/service\u003e\n \u003c/application\u003e\n \u003c/manifest\u003e\n\n### Key points about the code\n\n- In this example, the service has only one type, `media`. If\n multiple types apply to your service, separate them with the `|`\n operator. For example, if your service uses the camera and microphone,\n declare it like this:\n\n android:foregroundServiceType=\"camera|microphone\"\n\n- Depending on what API level your app targets, you may be\n **required** to declare foreground services in the app\n manifest. The requirements for specific API levels are described in\n [Changes to foreground services](/develop/background-work/services/fgs/changes).\n\n If you try to create a foreground service and its type isn't declared\n in the manifest, the system throws a\n [`MissingForegroundServiceTypeException`](/reference/android/app/MissingForegroundServiceTypeException)\n upon calling `startForeground()`.\n\n Even when it isn't required, it's a best practice to declare\n all your foreground services and provide their service types.\n\nRequest the foreground service permissions\n------------------------------------------\n\nThe following code shows how to request permissions for a foreground\nservice that uses the camera. \n\n \u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\" ...\u003e\n\n \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE\"/\u003e\n \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE_CAMERA\"/\u003e\n\n \u003capplication ...\u003e\n ...\n \u003c/application\u003e\n \u003c/manifest\u003e\n\n### Key points about the code\n\n- This code uses best practices for an app that targets API level 34 or higher."]]