Документация по службам переднего плана описывает текущее поведение служб переднего плана Android. В документации приведены рекомендации по использованию большинства приложений, независимо от того, предназначены ли они для самой последней версии Android.
На этой странице описаны некоторые из последних важных изменений в службах переднего плана, а также их последствия для приложений, не предназначенных для самой последней версии платформы Android. Во многих случаях рекомендации, которые были необязательными для приложений, ориентированных на более низкие уровни API, становятся обязательными для приложений, ориентированных на более высокие уровни API.
Android 9 (уровень API 28)
В Android 9 представлено разрешение FOREGROUND_SERVICE
. Приложения, работающие на Android 9 и использующие службы переднего плана, должны иметь такое разрешение.
Если приложение, ориентированное на уровень API 28 или выше, пытается создать службу переднего плана, не запрашивая разрешение FOREGROUND_SERVICE
, система выдает SecurityException
.
Android 10 (уровень API 29)
Следующие требования применяются к приложениям, ориентированным на уровень API 29 или выше:
- Если службы переднего плана приложения используют информацию о местоположении, приложение должно объявить службу с типом службы
location
.
Android 11 (уровень API 30)
Следующие требования применяются к приложениям, ориентированным на уровень API 30 или выше:
- Если службы переднего плана приложения используют камеру или микрофон, приложение должно объявить службу с типом службы
camera
илиmicrophone
соответственно.
Android 12 (уровень API 31)
Следующие требования применяются к приложениям, ориентированным на уровень API 31 или выше:
- Приложениям не разрешено запускать службы переднего плана, пока приложение находится в фоновом режиме, за некоторыми исключениями. Дополнительные сведения и сведения об исключениях из этого правила см. в разделе Ограничения на запуск службы переднего плана из фонового режима .
Android 14 (уровень API 34)
Следующие требования применяются к приложениям, ориентированным на уровень API 34 или выше:
- Вы должны объявить все службы переднего плана с указанием их типов.
- Приложения должны запрашивать соответствующий тип разрешения для вида работы, которую будет выполнять служба переднего плана. Каждому типу службы переднего плана соответствует соответствующий тип разрешения. Например, если приложение запускает службу переднего плана, использующую камеру, необходимо запросить разрешения
FOREGROUND_SERVICE
иFOREGROUND_SERVICE_CAMERA
. Если приложение нацелено на уровень API 34 или выше и не запрашивает соответствующее разрешение, система выдаетSecurityException
.
Android 15 (уровень API 35)
Следующие требования применяются к приложениям, ориентированным на уровень API 35 или выше:
- Существуют новые ограничения на продолжительность работы приоритетной службы
dataSync
. Эти ограничения описаны в разделе Поведение тайм-аута службы переднего плана . Аналогичные ограничения применяются к типу службы переднего планаmediaProcessing
(новому в Android 15). - Службам переднего плана
BOOT_COMPLETED
больше не разрешено запускать определенные службы переднего плана . - Приложениям, имеющим разрешение
SYSTEM_ALERT_WINDOW
разрешено запускать службы переднего плана из фона только в том случае, если у них в настоящее время есть видимое окно наложения (или если они соответствуют одному из других исключений из ограничений фонового запуска ). Раньше исключение для этих приложений было шире.
Документация по службам переднего плана описывает текущее поведение служб переднего плана Android. В документации приведены рекомендации по использованию большинства приложений, независимо от того, предназначены ли они для самой последней версии Android.
На этой странице описаны некоторые из самых последних важных изменений в службах переднего плана и их последствия для приложений, которые не ориентированы на самую последнюю версию платформы Android. Во многих случаях рекомендации, которые были необязательными для приложений, ориентированных на более низкие уровни API, становятся обязательными для приложений, ориентированных на более высокие уровни API.
Android 9 (уровень API 28)
В Android 9 представлено разрешение FOREGROUND_SERVICE
. Приложения, работающие на Android 9 и использующие службы переднего плана, должны иметь такое разрешение.
Если приложение, ориентированное на уровень API 28 или выше, пытается создать службу переднего плана, не запрашивая разрешение FOREGROUND_SERVICE
, система выдает SecurityException
.
Android 10 (уровень API 29)
Следующие требования применяются к приложениям, ориентированным на уровень API 29 или выше:
- Если службы переднего плана приложения используют информацию о местоположении, приложение должно объявить службу с типом службы
location
.
Android 11 (уровень API 30)
Следующие требования применяются к приложениям, ориентированным на уровень API 30 или выше:
- Если службы переднего плана приложения используют камеру или микрофон, приложение должно объявить службу с типом службы
camera
илиmicrophone
соответственно.
Android 12 (уровень API 31)
Следующие требования применяются к приложениям, ориентированным на уровень API 31 или выше:
- Приложениям не разрешено запускать службы переднего плана, пока приложение находится в фоновом режиме, за некоторыми исключениями. Дополнительные сведения и сведения об исключениях из этого правила см. в разделе Ограничения на запуск службы переднего плана из фонового режима .
Android 14 (уровень API 34)
Следующие требования применяются к приложениям, ориентированным на уровень API 34 или выше:
- Вы должны объявить все службы переднего плана с указанием их типов.
- Приложения должны запрашивать соответствующий тип разрешения для вида работы, которую будет выполнять служба переднего плана. Каждому типу службы переднего плана соответствует соответствующий тип разрешения. Например, если приложение запускает службу переднего плана, использующую камеру, необходимо запросить разрешения
FOREGROUND_SERVICE
иFOREGROUND_SERVICE_CAMERA
. Если приложение нацелено на уровень API 34 или выше и не запрашивает соответствующее разрешение, система выдаетSecurityException
.
Android 15 (уровень API 35)
Следующие требования применяются к приложениям, ориентированным на уровень API 35 или выше:
- Существуют новые ограничения на продолжительность работы приоритетной службы
dataSync
. Эти ограничения описаны в разделе Поведение тайм-аута службы переднего плана . Аналогичные ограничения применяются к типу службы переднего планаmediaProcessing
(новому в Android 15). - Службам переднего плана
BOOT_COMPLETED
больше не разрешено запускать определенные службы переднего плана . - Приложениям, имеющим разрешение
SYSTEM_ALERT_WINDOW
разрешено запускать службы переднего плана из фона только в том случае, если у них в данный момент есть видимое окно наложения (или если они соответствуют одному из других исключений из ограничений фонового запуска ). Раньше исключение для этих приложений было шире.
Документация по службам переднего плана описывает текущее поведение служб переднего плана Android. В документации приведены рекомендации по использованию большинства приложений, независимо от того, предназначены ли они для самой последней версии Android.
На этой странице описаны некоторые из последних важных изменений в службах переднего плана, а также их последствия для приложений, не предназначенных для самой последней версии платформы Android. Во многих случаях рекомендации, которые были необязательными для приложений, ориентированных на более низкие уровни API, становятся обязательными для приложений, ориентированных на более высокие уровни API.
Android 9 (уровень API 28)
В Android 9 представлено разрешение FOREGROUND_SERVICE
. Приложения, работающие на Android 9 и использующие службы переднего плана, должны иметь такое разрешение.
Если приложение, ориентированное на уровень API 28 или выше, пытается создать службу переднего плана, не запрашивая разрешение FOREGROUND_SERVICE
, система выдает SecurityException
.
Android 10 (уровень API 29)
Следующие требования применяются к приложениям, ориентированным на уровень API 29 или выше:
- Если службы переднего плана приложения используют информацию о местоположении, приложение должно объявить службу с типом службы
location
.
Android 11 (уровень API 30)
Следующие требования применяются к приложениям, ориентированным на уровень API 30 или выше:
- Если службы переднего плана приложения используют камеру или микрофон, приложение должно объявить службу с типом службы
camera
илиmicrophone
соответственно.
Android 12 (уровень API 31)
Следующие требования применяются к приложениям, ориентированным на уровень API 31 или выше:
- Приложениям не разрешено запускать службы переднего плана, пока приложение находится в фоновом режиме, за некоторыми исключениями. Дополнительные сведения и сведения об исключениях из этого правила см. в разделе Ограничения на запуск службы переднего плана из фонового режима .
Android 14 (уровень API 34)
Следующие требования применяются к приложениям, ориентированным на уровень API 34 или выше:
- Вы должны объявить все службы переднего плана с указанием их типов.
- Приложения должны запрашивать соответствующий тип разрешения для вида работы, которую будет выполнять служба переднего плана. Каждому типу службы переднего плана соответствует соответствующий тип разрешения. Например, если приложение запускает службу переднего плана, использующую камеру, необходимо запросить разрешения
FOREGROUND_SERVICE
иFOREGROUND_SERVICE_CAMERA
. Если приложение нацелено на уровень API 34 или выше и не запрашивает соответствующее разрешение, система выдаетSecurityException
.
Android 15 (уровень API 35)
Следующие требования применяются к приложениям, ориентированным на уровень API 35 или выше:
- Существуют новые ограничения на продолжительность работы приоритетной службы
dataSync
. Эти ограничения описаны в разделе Поведение тайм-аута службы переднего плана . Аналогичные ограничения применяются к типу службы переднего планаmediaProcessing
(новому в Android 15). - Службам переднего плана
BOOT_COMPLETED
больше не разрешено запускать определенные службы переднего плана . - Приложениям, имеющим разрешение
SYSTEM_ALERT_WINDOW
разрешено запускать службы переднего плана из фона только в том случае, если у них в данный момент есть видимое окно наложения (или если они соответствуют одному из других исключений из ограничений фонового запуска ). Раньше исключение для этих приложений было шире.