Abychom vývojářům umožnili vytvářet aplikace, které zajistí konzistentní uživatelský dojem, zavádíme další typy služeb na popředí spolu s novou sadou souvisejících omezení zásadami. Tento článek popisuje nadcházející požadavky na službu v popředí a jak deklarovat informace o službě v popředí v Play Console. Jsou zde uvedeny také požadavky na používání oznámení intent na celou obrazovku.
Požadavky na službu v popředí pro Android 14
Abychom vám pomohli určit, které případy použití jsou vhodné pro služby v popředí, a jasně definovat účel fungování na pozadí, vyžaduje systém Android 14 a novější před použitím služby v popředí následující úkony:
- V manifestu deklarujte typy služby v popředí. To je nutné provést pro každou službu v popředí, kterou chcete používat.
- Pokud je to u vybraného typu služby možné, deklarujte a požádejte o odpovídající oprávnění služby v popředí.
Kritéria používání služeb v popředí jsou podrobně popsána v sekci Oprávnění pro služby v popředí v zásadách ohledně zneužívání zařízení a sítí. Při aktualizaci na Android 14 musíte deklarovat typy služeb v popředí.
Deklarování informací o službě v popředí v Play Console
Když vaše aplikace cílí na Android 14 nebo novější, bude nutné deklarovat všechny typy služeb v popředí, které používáte, v nové deklaraci na stránce Obsah aplikace ve službě Play Console (Zásady > Obsah aplikace).
U každého typu služby v popředí, který deklarujete, je třeba:
- Popsat funkce aplikace, které používají jednotlivé typy služeb v popředí.
- Popsat dopad na uživatele, pokud:
- Úloha je odložena systémem (nezačíná okamžitě)
- Úloha je přerušena systémem (pozastavena nebo restartována)
- Vložit odkaz na video ukazující jednotlivé funkce služby v popředí. Video musí ukazovat kroky, které uživatel musí v aplikaci provést, aby danou funkci aktivoval.
- Pro každý typ služby v popředí vyberte konkrétní případ použití. K dispozici bude přednastavený seznam případů použití, z nichž si budete moci vybrat. Vybrané případy použití namapované na typy služeb v popředí jsou uvedeny v tabulce níže. Tento seznam není vyčerpávající. Pokud případ použití není v seznamu uveden, můžete ho zadat ručně.
V některých případech doporučujeme použít alternativní rozhraní API. Seznam těchto případů použití a jejich alternativních doporučených rozhraní API najdete na webu Android Developers.
Poznámka: Níže uvedený seznam není úplný. Pokud chcete zjistit, zda je přístup pro službu v popředí vhodný, přečtěte si zásady oprávnění pro služby v popředí pro případy použití, které nejsou uvedeny níže.
Typ služby v popředí | Případy použití | Popisy a příklady |
---|---|---|
TYPE_CAMERA |
Streamování z kamery na pozadí | Pokračující přístup k fotoaparátu na pozadí. Například aplikace pro videohovory, které umožňují multitasking. |
TYPE_CONNECTED_DEVICE |
Nepřetržitý přenos dat na externí zařízení | Interakce s externími zařízeními, včetně přenosu dat, které vyžadují připojení Bluetooth, NFC, IR, USB nebo připojení k síti. Například nositelné zařízení, zařízení ke sledování dítěte, náhlavní souprava, auto. |
TYPE_DATA_SYNC |
Přenos sítě: Zálohování a obnovení | Slouží pro určité funkce aktivované uživatelem. Například výběr konkrétní fotky k zálohování do cloudu oproti dennímu automatickému zálohování všech nových fotek. |
Přenos sítě: Nahrání nebo stažení | Například načítání dat (zpracování na straně serveru). | |
Místní zpracování: Překódování médií | Proces převodu mediálních souborů, například zvuku a videa, z jednoho formátu do jiného (například funkce jako úpravy videí). | |
Místní zpracování: Import nebo export | Zahrnuje migraci souborů z SD karty. | |
Místní zpracování: Jiné | Slouží pro akce aktivované uživatelem, nikoli pro běžné úkony iniciované systémem nebo serverem. Například šifrování, změna velikosti. | |
TYPE_HEALTH |
Synchronizace zdravotních údajů | Synchronizace zdravotních údajů u aplikací z kategorie fitness. Může se jednat o synchronizaci mezi aplikacemi nebo o shromažďování dat prostřednictvím sledování v zařízení. Například počítadlo kroků nebo zařízení ke sledování cvičení. |
TYPE_LOCATION |
Aktualizace polohy na pozadí: Sdílení polohy aktivované uživatelem | Může se jednat například o funkci vyhledání kamaráda nebo sledování aktivity vozidla. |
Aktualizace polohy na pozadí: Navigace | Například pokračující jízdní navigace v mapách nebo sledování spolujízdy. | |
Geofencing | Definování parametrů, které obklopují oblasti zájmu. | |
TYPE_MEDIA_PLAYBACK |
Přehrávání mediálního obsahu | Souvislé přehrávání zvuku nebo videa na pozadí, včetně streamování. |
Zobrazení obrazu v obraze | Když je mediální obsah při přehrávání na pozadí minimalizován. | |
TYPE_MEDIA_PROJECTION |
Projekce médií nebo obsahu a streamování či nahrávání pomocí rozhraní API MediaProjection | Promítání médií do neprimárních zobrazovacích nebo externích zařízení pomocí rozhraní MediaProjection API, včetně streamování. |
TYPE_MICROPHONE |
Přístup ke zvuku na pozadí | Záznam zvukového vstupu, například hlasové příkazy pro virtuálního asistenta bez ukládání, hlasové nahrávky. |
TYPE_PHONE_CALL |
Volání: Rozhraní API pro mobilní sítě / VoiP / telekomunikaci | Podpora různých funkcí vytáčení. |
TYPE_REMOTE_MESSAGING |
Odesílání textové komunikace do jiného zařízení | Pomáhá uživateli v kontinuitě odesílání zpráv, když přejde na jiné zařízení. Uživatelé například mohou odesílat textové zprávy prostřednictvím webového klienta naskenováním QR kódu a vytvořením spojení mezi webovým klientem a telefonem. Není omezeno pouze na zprávy SMS. |
Tato deklarace bude k dispozici od listopadu 2023 a poskytneme vám čas k jejímu vyplnění, získání zpětné vazby a v případě potřeby provedení úprav.
Požadavky na objekty intent na celou obrazovku pro Android 14
Pomocí oznámení intent na celou obrazovku můžete sdílet zprávy s vysokou prioritou, které vyžadují okamžitou pozornost uživatele. Abychom zajistili, že se toto oprávnění bude vztahovat pouze na vhodné případy použití s vysokou prioritou, zavádíme u Androidu 14 omezení na používání oprávnění USE_FULL_SCREEN_INTENT
. Tento způsob omezení oznámení přispívá k lepšímu uživatelskému dojmu.
Pokud používáte oprávnění USE_FULL_SCREEN_INTENT
, od 31. května 2024 je nutné vyplnit prohlášení ve službě Play Console a uvést, zda má aplikace povolenou hlavní funkci a zda splňuje podmínky pro automatické udělení. Od 22. ledna 2025 bude toto oprávnění ve výchozím nastavení u aplikací, které cílí na Android 14 nebo novější, povoleno pouze pro funkce volání nebo budíku. Ostatní aplikace budou muset o využívání daného oprávnění požádat uživatele. U aplikací, které nevyplnily prohlášení nebo nebyly schváleny k výchozímu povolení, budou vývojáři muset požádat uživatele, aby při nových instalacích udělili oprávnění. Pokud oprávnění neudělí, dojde k elegantní degradaci funkcí aplikace.
Časté dotazy
Co se změní na službách v popředí v Androidu 14?Zavádíme několik nových typů služeb v popředí a typ společně s odpovídajícím oprávněním bude nutné deklarovat. Pokud například deklarujete typ služby v popředí „kamera“, musíte také deklarovat oprávnění FOREGROUND_SERVICE_CAMERA. Použití v popředí musí splňovat i další požadavky popsané v zásadách týkajících se zneužívání zařízení a sítě.
Vyberte typ služby v popředí, který nejlépe odpovídá zamýšlenému použití služby v popředí. Například aplikace na cvičení, která sleduje cvičení uživatele, může deklarovat typ „zdraví“. V případě potřeby můžete vybrat i víc typů služeb v popředí.
Když aplikace, které cílí na Android 14, používají službu v popředí, vývojáři musí pro daný typ služby v popředí deklarovat příslušné oprávnění. Například pokud aplikace používá typ služby v popředí „poloha“, bude nutné deklarovat oprávnění FOREGROUND_SERVICE_LOCATION. Oprávnění služby v popředí, která odkazují na konkrétní typ služby v popředí, jsou definována jako normální oprávnění a udělují se automaticky při instalaci. Uživatelé tato oprávnění nemohou odebrat.
V závislosti na typu služby v popředí mohou platit další požadavky na systém. Patří mezi ně oprávnění po spuštění, která musí uživatelé udělit před použitím služby. Například při použití služby v popředí typu „poloha“ musí uživatel udělit také oprávnění ACCESS_COARSE_LOCATION nebo ACCESS_FINE_LOCATION. Nejnovější informace najdete v dokumentaci.
Pokud váš případ použití odpovídá jiným charakteristikám pro používání služby v popředí (jak je popsáno v zásadách), můžete v omezených případech deklarovat typ TYPE_SPECIAL_USE
. Všechny typy služeb v popředí podléhají kontrole.
Zaznamenatelné uživatelem znamená, že by si uživatel měl být vědom, že na jeho zařízení běží úloha služby v popředí. Uživatelé akci provedl vědomě, pokud ji sám spustil, např. zahájil přehrávání skladby nebo sledování běhu. Aplikace také může uživatele informovat o probíhající službě v popředí tím, že na hlavním panelu zařízení zobrazí jasné a přesné oznámení.
Pokud cílíte na verzi Androidu před Androidem 14, i nadále používejte atribut android:foregroundServiceType
v prvku <service> souboru manifestu aplikace.
Úlohy přenosu dat zahájené uživatelem jsou navrženy tak, aby zjednodušily přenosy dat po síti. Mají omezené sledování a automaticky spravují blokování přechodu do režimu spánku. Typ služby v popředí dataSync může zahrnovat přenos dat místně nebo přes síť včetně lokálního zpracování dat v zařízení. Pokud ve vašem případě jde o přenos dat přes síť (jako je Wi-Fi, mobilní síť nebo Bluetooth) v reakci na explicitní žádost uživatele, doporučujeme místo typu služby v popředí dataSync použít úlohu přenosu dat zahájenou uživatelem.
V systému Android 14 se oprávnění USE_FULL_SCREEN_INTENT
přepne z normálního oprávnění na oprávnění aplikací ke speciálnímu přístupu a pouze aplikacím, jejichž hlavní funkce je prioritní použití nastavení budíku nebo přijetí telefonního hovoru či videohovoru, bude automaticky uděleno oprávnění USE_FULL_SCREEN_INTENT
. Hlavní funkci berte jako primární účel aplikace, bez kterého by byla rozbitá nebo k ničemu. Jiné aplikace mohou oprávnění používat i nadále, ale až poté, co jim ho uživatel udělí.
Tyto změny vstoupí v platnost 31. května 2024.
Pokud aplikace cílí na systém Android 14 nebo novější, na stránce Obsah aplikace v Play Console (Zásady > Obsah aplikace) budete moci deklarovat, že pro svou hlavní funkci používá objekt intent na celou obrazovku. Tato deklarace bude k dispozici od dubna 2024 a poskytneme vám čas k jejímu vyplnění.