Чтобы разработчики могли создавать удобные для пользователей приложения, мы вводим дополнительные типы активных служб и новый набор ограничений. В этой статье рассказывается, как объявлять активные службы в Play Console, и объясняются требования, предъявляемые к ним и к полноэкранным уведомлениям, запускаемым с помощью намерений.
Требования к активным службам для Android 14
Если ваше приложение поддерживает Android 14 или более позднюю версию ОС, выполните указанные ниже действия, чтобы определить подходящие варианты использования активных служб и четко сформулировать цель фоновой работы приложения.
- Объявите в манифесте тип для каждой активной службы, которую вы собираетесь использовать.
- Для каждого выбранного типа объявите и запросите подходящее разрешение для активной службы (если применимо).
Критерии использования активных служб подробно описаны в разделе Использование активных служб правил в отношении злоупотребления ресурсами устройства и сети. При переходе на Android 14 необходимо объявить типы активных служб.
Объявление активных служб в Play Console
Если ваше приложение поддерживает Android 14 или более позднюю версию, вам понадобится объявить типы всех используемых активных служб в новой декларации на странице Контент приложения в Play Console (Правила > Контент приложения).
Для каждого объявляемого типа необходимо сделать следующее:
- Описать функции приложения, использующие активную службу.
- Описать влияние на работу пользователя, если выполнение задачи:
- откладывается системой (не происходит немедленно);
- прерывается системой (приостанавливается или запускается заново).
- Добавить ссылку на видео, в котором показано, как реализована каждая функция, связанная с активной службой. В нем должны присутствовать шаги, которые пользователю нужно выполнить, чтобы запустить функцию в приложении.
- Указать вариант использования, подходящий в вашей ситуации. Его можно будет выбрать из списка. Некоторые варианты использования, связанные с типами активных служб, показаны в таблице ниже, а при необходимости вы также можете ввести данные вручную.
Для определенных вариантов использования мы рекомендуем выбирать альтернативные API. Более подробную информацию об этом можно найти на сайте Android для разработчиков.
Примечание. Таблица содержит не все возможные примеры. Чтобы определить, применим ли доступ к активным службам для вариантов использования, которые не упомянуты ниже, ознакомьтесь с информацией в разделе Разрешения на запуск активных служб.
Тип активной службы | Варианты использования | Описание и примеры |
---|---|---|
TYPE_CAMERA |
Трансляция с камеры в фоновом режиме | Сохранение доступа к камере при переходе в фоновый режим, например в приложениях для видеосвязи, поддерживающих многозадачность. |
TYPE_CONNECTED_DEVICE |
Непрерывная передача данных на внешнее устройство | Взаимодействие с внешними устройствами (в том числе передача данных) через Bluetooth, NFC, инфракрасный порт, USB или сетевое подключение. Это могут быть носимые устройства, радионяни, гарнитуры, мультимедийные системы автомобилей и не только. |
TYPE_DATA_SYNC |
Передача по сети: резервное копирование и восстановление данных | Применяется только для функций, запускаемых пользователем. Пример: вместо ежедневного автоматического копирования в облако всех новых фото пользователь сам выбирает изображения для резервного копирования. |
Передача по сети: загрузка и скачивание | Пример: получение данных или их обработка на сервере. | |
Локальная обработка: перекодирование медиафайлов | Изменение формата медиафайлов, таких как аудио и видео, например при редактировании роликов. | |
Локальная обработка: импорт или экспорт | Пример: перенос файлов с SD-карты. | |
Локальная обработка: другое | Применяется для задач, запущенных пользователем, но не для регулярных системных или инициированных сервером процессов. Например, это может быть изменение размера изображения или шифрование. | |
TYPE_HEALTH |
Синхронизация данных о здоровье | Синхронизация информации о здоровье в фитнес-приложениях и между ними или получение такими приложениями сведений, которые отслеживаются на устройстве, например данных о тренировках или количестве шагов. |
TYPE_LOCATION |
Обновление данных о местоположении в фоновом режиме: передача геоданных, запущенная пользователем | Пример: функции, с помощью которых можно делиться местоположением с друзьями или отслеживать передвижение на транспорте. |
Обновление данных о местоположении в фоновом режиме: навигация | Например, сюда относится непрерывная актуализация маршрута на картах или отслеживание совместных поездок. | |
Геозонирование | Определение параметров, по которым формируются границы интересующих местоположений. | |
TYPE_MEDIA_PLAYBACK |
Воспроизведение мультимедиа | Непрерывное воспроизведение аудио или видео в фоновом режиме, в том числе при потоковой передаче. |
Показ картинки в картинке | Показ в фоновом режиме мультимедийного контента в уменьшенном формате. | |
TYPE_MEDIA_PROJECTION |
Проецирование медиафайлов и контента, потоковая передача или запись с помощью MediaProjection API | Проецирование медиаконтента на неосновной дисплей или на внешние устройства (в том числе потоковая передача) через MediaProjection API. |
TYPE_MICROPHONE |
Доступ к аудио в фоновом режиме | Использование звука, например получение голосовых команд виртуальным ассистентом без их сохранения и запись голоса. |
TYPE_PHONE_CALL |
Звонки с помощью API для сотовой связи, VoIP и телекоммуникаций | Поддержка различных функций для звонков. |
TYPE_REMOTE_MESSAGING |
Ретрансляция текстовых сообщений на другое устройство | Возможность продолжить выполнение задач, связанных с обменом сообщениями, при переключении на другое устройство. Пример: отправка текстовых сообщений через веб-клиент путем связывания его с телефоном при помощи QR-кода. Распространяется не только на SMS. |
Декларация станет доступной к ноябрю 2023 года. У вас будет время, чтобы заполнить ее, получить наши замечания и при необходимости внести изменения.
Требования к полноэкранным уведомлениям в Android 14, запускаемым с помощью намерений
Если вам нужно передавать пользователям важные сообщения, которые требуют немедленного внимания, вы можете добавить в приложение полноэкранные уведомления, запускаемые с помощью намерений. Чтобы разрешение USE_FULL_SCREEN_INTENT
действовало только для уведомлений с высоким приоритетом, в Android 14 мы вводим ограничения на его использование. Это поможет сделать работу с приложением удобнее для пользователей.
Если вы используете разрешение USE_FULL_SCREEN_INTENT
, то обязаны заполнить декларацию в Play Console 31 мая 2024 года или позже. В ней понадобится подтвердить, что USE_FULL_SCREEN_INTENT требуется для работы допустимых основных функций и приложение отвечает требованиям к автоматическому предоставлению разрешения. С 31 октября 2024 года это разрешение будет предоставляться по умолчанию только приложениям, которые поддерживают Android 14 или более новой версии и содержат функции звонков или будильника. В остальных случаях разрешение USE_FULL_SCREEN_INTENT
понадобится получать у пользователя. Приложения, для которых не заполнена декларация или не предоставлен допуск, должны будут запрашивать разрешение у новых пользователей. Разработчикам этих приложений также потребуется адаптировать функции под тех, кто откажется давать разрешение.
Часто задаваемые вопросы
Что изменится в работе с активными службами в Android 14?Мы вводим несколько новых типов активных служб, и теперь необходимо будет объявлять тип активной службы и подходящее для нее разрешение. Например, если вы объявите активную службу типа camera, вам также нужно будет объявить разрешение FOREGROUND_SERVICE_CAMERA. Кроме того, использование активных служб в приложении должно будет соответствовать остальным требованиям, приведенным в правилах в отношении злоупотребления ресурсами устройства и сети.
Выберите тип активной службы, который лучше всего соответствует цели ее использования. Например, если ваше приложение для фитнеса отслеживает физическую активность, укажите тип health. При необходимости вы можете выбрать несколько типов активных служб.
Если приложение, предназначенное для Android 14, использует активную службу, разработчики должны объявить для нее разрешение, соответствующее ее типу. Например, если в продукте используется активная служба типа location, нужно объявить разрешение FOREGROUND_SERVICE_LOCATION. Разрешения, которые относятся к определенным типам активных служб, называются обычными и предоставляются по умолчанию при установке. Пользователи не могут их отозвать.
В зависимости от типа активной службы могут применяться дополнительные системные требования. К ним относятся динамические разрешения, которые приложение запрашивает у пользователя перед их использованием. Например, если используется активная служба типа location, пользователь также должен предоставить одно из двух разрешений: ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION. Актуальную информацию можно найти в документации.
В некоторых случаях, если ваш вариант соответствует остальным требованиям к использованию активных служб (согласно правилам), можно указать тип TYPE_SPECIAL_USE
. Информация о типе активной службы всегда проверяется.
Это значит, что пользователь должен знать о задаче активной службы, выполняющейся на его устройстве. Если пользователь самостоятельно запускает действие, например воспроизводит музыку или включает отслеживание физической активности, считается, что он знает о такой задаче. Приложение также может сообщать пользователям о запуске активной службы с помощью точного и понятного уведомления на панели задач устройства.
Если приложение предназначено для версий ниже Android 14, продолжайте использовать атрибут android:foregroundServiceType
в элементе <service> файла манифеста.
Задания передачи данных, инициированные пользователем, позволяют упростить передачу данных по сети. Они обеспечивают отслеживание ограничений и автоматическое управление запретами блокировки. Активная служба типа dataSync может включать в себя передачу данных локально или по сети, а также их локальную обработку на устройстве. Если вы передаете данные по сети (например, мобильной, Wi-Fi или Bluetooth) в ответ на явный запрос пользователя, вместо активной службы типа dataSync мы рекомендуем использовать задание передачи данных, инициированное пользователем.
В Android 14 обычное разрешение USE_FULL_SCREEN_INTENT
получит статус разрешения, требующего специального доступа. Оно будет предоставляться автоматически, только если в приложении установка будильника или прием телефонных звонков и видеовызовов является основной функцией с высоким приоритетом. Основными считаются функции, для выполнения которых было создано приложение и без которых им невозможно пользоваться. В других приложениях это разрешение будет действовать, только если его предоставил пользователь.
Эти изменения начнут действовать 31 мая 2024 года.
Если ваше приложение поддерживает Android 14 или более позднюю версию, вы можете объявить, что его основная функция подходит для показа полноэкранных уведомлений, запускаемых с помощью намерений. Для этого перейдите на страницу Контент приложения в Play Console (Правила > Контент приложения). Декларация будет доступна с апреля 2024 года. Мы предоставим вам время на ее заполнение.