В манифесте вашего приложения объявите каждую из служб переднего плана вашего приложения с помощью элемента <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 или выше.
В манифесте вашего приложения объявите каждую из служб переднего плана вашего приложения с помощью элемента <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 или выше.