В манифесте вашего приложения объявите каждую из служб переднего плана с помощью элемента <service> . Для каждой службы используйте атрибут android:foregroundServiceType , чтобы указать, какую работу выполняет служба.
Кроме того, запросите все необходимые разрешения для ваших служб, работающих в фоновом режиме.
Совместимость версий
Требования к объявлению служб переднего плана и запросу разрешений различаются в зависимости от уровня API, на который ориентировано ваше приложение. На этой странице описаны требования для приложений, ориентированных на уровень API 34 или выше. Информацию об изменениях в службах переднего плана в более ранних версиях платформы см. в разделе «Изменения в службах переднего плана» .
Объявите службы переднего плана в манифесте приложения.
Приведенный ниже код показывает, как объявить службу воспроизведения мультимедиа в фоновом режиме. Вы можете использовать подобную службу для воспроизведения музыки.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Основные моменты, касающиеся кода.
В этом примере у сервиса только один тип —
media. Если к вашему сервису применяется несколько типов, разделите их оператором|. Например, если ваш сервис использует камеру и микрофон, объявите его следующим образом:android:foregroundServiceType="camera|microphone"В зависимости от уровня API, на который ориентировано ваше приложение, может потребоваться объявить службы переднего плана в манифесте приложения. Требования для конкретных уровней API описаны в разделе «Изменения в службах переднего плана» .
Если вы попытаетесь создать службу переднего плана, и её тип не будет указан в манифесте, система выдаст исключение
MissingForegroundServiceTypeExceptionпри вызовеstartForeground().Даже если это не требуется, рекомендуется объявлять все ваши фоновые службы и указывать их типы.
Запросите разрешения для службы переднего плана.
Приведенный ниже код показывает, как запросить разрешения для службы переднего плана, использующей камеру.
<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>
Основные моменты, касающиеся кода.
- В этом коде используются лучшие практики для приложений, ориентированных на API уровня 34 или выше.