Щоб розробники могли створювати додатки, які забезпечують узгоджену взаємодію з користувачем, ми розширюємо типи активних сервісів і впроваджуємо нові відповідні обмеження. Із цієї статті ви дізнаєтеся про нові вимоги до активних сервісів, а також про те, як задекларувати інформацію щодо активних сервісів у Google Play Console. Тут ви також знайдете вимоги до показу сповіщень із повноекранним наміром.
Вимоги до активних сервісів в Android 14
Щоб вам було простіше визначити прийнятні сценарії застосування активних сервісів і мету роботи свого додатка у фоновому режимі, зверніть увагу на вимоги, яким має відповідати додаток, перш ніж застосовувати активний сервіс в Android 14 або новіших версій.
- Потрібно задекларувати в маніфесті кожен тип активного сервісу, який ви плануєте використовувати.
- Залежно від вибраного типу сервісу потрібно задекларувати й запитувати відповідний дозвіл на запуск активного сервісу.
У розділі Дозволи для активних сервісів наших правил щодо зловживання пристроєм і мережею докладно описано вимоги до використання активних сервісів. Якщо ви націлюєте свій додаток на Android 14, ви повинні задекларувати типи активних сервісів.
Як задекларувати інформацію про активні сервіси в Google Play Console
Якщо ваші додатки націлено на Android 14 або новіших версій, укажіть усі типи активних сервісів, які використовуєте, у новій декларації в Play Console на сторінці Контент додатків (Моніторинг і оптимізація > Контент додатків).
Виконайте наведені нижче дії для кожного типу активних сервісів, який ви декларуєте.
- Надайте опис функцій додатка, які використовують активний сервіс кожного типу.
- Опишіть можливі наслідки для користувача, якщо:
- система відкладе (не розпочне негайно) роботу сервісу;
- система перерве роботу сервісу (призупинить і/або перезапустить).
- Додайте посилання на відео, де продемонстровано роботу кожного активного сервісу й дії, які користувач має виконати в додатку, щоб запустити відповідну функцію.
- Для кожного типу активного сервісу виберіть варіант застосування зі списку запропонованих. Деякі застосування й відповідні типи активних сервісів наведено в таблиці нижче. Це неповний перелік. Якщо в таблиці немає вашого варіанта застосування, введіть його вручну.
Для певних застосувань ми радимо використовувати альтернативні API. Список цих застосувань і відповідних альтернативних рекомендованих інтерфейсів API можна переглянути на сайті "Розробники Android".
Примітка. Наведений нижче перелік неповний. Якщо в таблиці нижче немає вашого варіанта застосування й ви хочете дізнатися, чи можна у вашому випадку застосовувати активні сервіси, перегляньте правила щодо дозволів для активних сервісів.
| Тип активного сервісу | Застосування | Описи й приклади | Вимоги до відео (що має показувати відео) |
TYPE_CAMERA |
Трансляція з камери у фоновому режимі | Безперервний доступ до камери у фоновому режимі (наприклад, під час роботи додатка для відеочату з підтримкою багатозадачності). | Покажіть, як користувач починає зйомку на камеру або сеанс потокового передавання відео. |
TYPE_CONNECTED_DEVICE |
Безперервне передавання даних на зовнішній пристрій | Взаємодія із зовнішніми пристроями, зокрема передавання даних через Bluetooth, NFC, ІЧ, USB або з’єднання з мережею (наприклад, з пристроєм, який можна носити, радіонянею, гарнітурою, автомобілем). | Покажіть, як користувач створює пару й підключається до зовнішнього пристрою безпосередньо в додатку. На відео має бути показано процес налаштування в додатку й подальшу взаємодію з пристроєм, а не системні налаштування. |
|
Використання додатка для мобільного пристрою як ключа від автомобіля конкретного виробника Наприклад, для віддаленого замикання або відмикання транспортного засобу |
Продемонструйте взаємодію з транспортним засобом на відстані за допомогою додатка як ключа (наприклад, замикання або відмикання дверей транспортного засобу чи віддалений запуск двигуна). | Покажіть, як користувач взаємодіє з транспортним засобом за допомогою додатка (наприклад, замикає або відмикає двері чи заводить автомобіль дистанційно). | |
TYPE_DATA_SYNC |
Передавання даних через мережу: резервне копіювання й відновлення | Використовуйте лише для функцій, ініційованих користувачем (наприклад, для вибору конкретної фотографії, резервну копію якої потрібно завантажити в хмару, замість щоденного автозавантаження всіх нових фотографій). | Покажіть, як користувач запускає завдання резервного копіювання або відновлення через мережу. Відео не має показувати повністю автоматичне або фонове резервне копіювання чи відновлення. |
| Передавання даних через мережу: завантаження на сервер або з нього | Наприклад, отримання даних чи обробка на сервері. | Покажіть, як користувач ініціює завантаження, передавання, синхронізацію чи обробку даних на сервері. | |
| Локальна обробка: імпорт або експорт | Перенесення файлів із карти SD тощо. | Покажіть, як користувач вручну запускає імпорт або експорт файлів на пристрої (наприклад, переміщує файли з карти SD). | |
| Локальна обробка: інше | Використовуйте лише для дій, ініційованих користувачем, а не для регулярних завдань, ініційованих системою чи сервером (наприклад, шифрування або змінення розміру). | Покажіть, як користувач ініціює завдання на пристрої, наприклад змінює розмір файлу або шифрує його. Відео має показувати дію, ініційовану безпосередньо користувачем, а не автоматичні фонові завдання. | |
TYPE_HEALTH |
Синхронізація даних про здоров’я | Синхронізація даних про здоров’я у фітнес-додатках для обміну даними між додатками або збирання даних за допомогою пристроїв із функціями відстеження активності (наприклад, підрахунок кроків чи відстеження тренувань). | Покажіть, як користувач запускає синхронізацію даних про здоров’я, наприклад підрахунок кроків або запис активного тренування. |
TYPE_LOCATION |
Оновлення геоданих у фоновому режимі: надсилання геоданих, ініційоване користувачем | Наприклад, функція "Знайти друга" або відстеження транспортного засобу. | Покажіть, як користувач активує функцію надсилання геоданих. |
| Оновлення геоданих у фоновому режимі: навігація | Наприклад, для автомобільної навігації за допомогою карт або відстеження спільних поїздок. | Покажіть, як користувач ініціює активну навігацію або відстеження поїздки. | |
| Геозонування | Визначення параметрів на основі місцеположень, які цікавлять користувача. | Покажіть, як користувач виконує в додатку дії, що пов’язані з певним місцеположенням або периметром (наприклад, вибирає зону посадки, термінал або місце проведення заходу), щоб активувати геозонування. | |
TYPE_MEDIA_PLAYBACK |
Відтворення медіаконтенту | Безперервне відтворення аудіо або відео у фоновому режимі, зокрема під час потокового передавання. | Покажіть, як користувач починає відтворення відео або аудіо. Відтворення має ініціювати саме користувач; автоматичне відтворення звукового супроводу під час відкриття додатка (наприклад, фоновий саундтрек в іграх) не відповідає вимогам. |
| Показ картинки в картинці | Відтворення медіафайлу в зменшеному форматі у фоновому режимі. | Покажіть, як користувач починає відтворення медіаконтенту й активує режим "Картинка в картинці". | |
TYPE_MEDIA_PROJECTION |
Трансляція медіафайлів або контенту, а також потокове передавання чи записування за допомогою MediaProjection API | Трансляція медіаконтенту на неосновних екранах або зовнішніх пристроях за допомогою MediaProjection API, зокрема потокове передавання. | Покажіть, як користувач ініціює в додатку зйомку, записування чи потокове передавання зображення з екрана пристрою на зовнішній дисплей. |
FOREGROUND_SERVICE_MEDIA_PROCESSING |
Перекодування медіафайлів | Виконання тривалих операцій із медіаоб’єктами, наприклад конвертування медіафайлів у різні формати. | Покажіть, як користувач ініціює в додатку конвертування або перекодування відео- чи аудіофайлу в інший формат. |
TYPE_MICROPHONE |
Доступ до аудіо у фоновому режимі | Отримання вхідних аудіоданих (наприклад, голосових команд для віртуального помічника) без зберігання й записування голосу. | Покажіть, як користувач ініціює записування аудіо чи отримання голосових команд за допомогою мікрофона. |
TYPE_PHONE_CALL |
Здійснення викликів: мобільні мережі, технології VoiP, інтерфейси API для телекомунікації | Підтримка різних функцій виклику. | Покажіть, як користувач ініціює активний голосовий або відеодзвінок на екрані пристрою. |
TYPE_REMOTE_MESSAGING |
Ретрансляція текстових повідомлень на інший пристрій | Забезпечення можливості продовжити спілкування на іншому пристрої (наприклад, можна дозволити користувачам надсилати текстові повідомлення через вебклієнт, установивши з’єднання між вебклієнтом і телефоном за допомогою QR-коду). Не обмежується SMS-повідомленнями. | Покажіть, як користувач ініціює синхронізацію або перенесення текстових повідомлень між телефоном і зовнішнім вебклієнтом або пристроєм. |
Ця декларація стане доступною до листопада 2023 р. Ви матимете достатньо часу, щоб заповнити її, отримати наш відгук і за потреби внести зміни.
Вимоги до показу сповіщень на весь екран в Android 14
За допомогою сповіщень на весь екран ви можете показувати користувачам важливу інформацію, яка потребує негайної уваги. Щоб цей дозвіл надавався лише у відповідних високопріоритетних сценаріях, ми впроваджуємо обмеження на використання дозволу USE_FULL_SCREEN_INTENT в Android 14. Такі обмеження допоможуть забезпечити кращу взаємодію з користувачами.
Якщо ви використовуєте дозвіл USE_FULL_SCREEN_INTENT, то з 31 травня 2024 р. будете зобов’язані заповнити декларацію в Play Console, щоб підтвердити, що основне призначення вашого додатка відповідає вимогам до автоматичного отримання цього дозволу. Починаючи з 22 січня 2025 р., отримувати цей дозвіл за умовчанням зможуть лише додатки з функціями дзвінків і будильника, націлені на Android 14 і новіших версій. Інакше ви повинні отримати дозвіл користувача на використання дозволу USE_FULL_SCREEN_INTENT. У додатках, для яких не заповнено декларацію або які не відповідають вимогам для отримання цього дозволу за умовчанням, розробникам потрібно буде показувати користувачам запит на його надання під час нового встановлення, а в разі відхилення запиту – спрощувати функціональність додатка.
Поширені запитання
Які зміни буде впроваджено в Android 14 щодо активних сервісів?Ми впроваджуємо кілька нових типів активних сервісів, а також обов’язкове декларування типу активного сервісу й відповідного дозволу на його запуск. Наприклад, якщо ви декларуєте активний сервіс типу camera, ви повинні також задекларувати дозвіл FOREGROUND_SERVICE_CAMERA. Крім того, використання активних сервісів має відповідати іншим вимогам наших правил щодо зловживання пристроєм і мережею.
Вибирайте тип активного сервісу, що відповідає його призначенню. Наприклад, якщо ви створили додаток, який відстежує виконання вправ, задекларуйте активний сервіс типу health. Залежно від додатка для нього можна задекларувати кілька типів активних сервісів.
Якщо додаток, націлений на Android 14, використовує певний активний сервіс, його розробник повинен задекларувати дозвіл на запуск активного сервісу відповідного типу. Наприклад, якщо в додатку використовується активний сервіс типу location, задекларуйте дозвіл FOREGROUND_SERVICE_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 замість звичайного стане дозволом на спеціальний доступ. Дозвіл USE_FULL_SCREEN_INTENT автоматично надаватиметься додаткам, лише якщо їхнє основне призначення належить до високопріоритетних: налаштування будильника або отримання аудіо- чи відеодзвінків. Основне призначення додатка – це функція, без якої він не працюватиме. Інші додатки також можуть використовувати цей дозвіл, але лише після отримання згоди користувача.
Ці зміни почнуть діяти 31 травня 2024 р.
Якщо ваш додаток націлено на Android 14 і новіших версій, ви можете вказати, що його основне призначення потребує використання повноекранного наміру, на сторінці Контент додатків (Моніторинг і оптимізація > Контент додатків) у Play Console. Ця декларація стане доступною у квітні 2024 року, і ви матимете достатньо часу, щоб заповнити її.