Od Androida 14 wiele agentów zarządzania zasadami dotyczącymi urządzeń może ustawiać zasady za pomocą
DevicePolicyManager
interfejsów API.
Zasady ogólne
W przypadkach, gdy więcej niż 1 agent zarządzania zasadami dotyczącymi urządzeń egzekwuje zasady wobec użytkownika:
- agenci zarządzania zasadami dotyczącymi urządzeń mogą wysyłać zapytania o egzekwowane lub rozwiązane zasady w przypadku każdej zasady, którą mogą ustawić;
- każde ustawienie zasady powoduje wywołanie zwrotne (
onPolicySetResult), które wskazuje, czy zasada została ustawiona prawidłowo, czy nie udało się jej ustawić z określonego powodu (np. z powodu konfliktu zasad lub awarii sprzętu); - jeśli stan rozwiązany zasady zmieni się później, otrzymasz wywołanie zwrotne (
onPolicyChanged), które wskazuje, czy zasada jest zgodna z tym, co ustawił agent; - większość zasad działa na zasadzie „najbardziej rygorystyczna wygrywa”; oznacza to, że egzekwowana jest najbardziej rygorystyczna zasada wybrana przez dowolnego agenta zarządzania zasadami dotyczącymi urządzeń.
Android 14 (poziom 34 interfejsu API) i nowszy
W Androidzie 14 (poziom 34 interfejsu API) i nowszym urządzenia zgodne z Androidem muszą implementować mechanizm rozwiązywania konfliktów zasad zdefiniowany w tabeli poniżej, aby rozwiązywać konflikty, gdy zasada jest ustawiana przez więcej niż 1 agenta zarządzania zasadami dotyczącymi urządzeń. Mechanizmy rozwiązywania konfliktów, do których odwołuje się tabela poniżej (MostRecent, MostRestrictive, StringSetUnion i TopPriority), to nazwy klas mechanizmów rozwiązywania konfliktów zdefiniowanych w Projekcie Android Open Source.
Zasady zidentyfikowane przez PolicyIdentifier instancje dokumentują swoją strategię rozwiązywania konfliktów indywidualnie w dokumentacji API.
| DevicePolicyManager API | Mechanizm rozwiązywania konfliktów |
|---|---|
MostRecent: gdy zasada jest ustawiana przez kilku administratorów, egzekwowana jest najnowsza zasada. |
|
|
MostRestrictive: ustawia ograniczenie użytkownika, jeśli zostało ono ustawione przez dowolnego administratora. |
StringSetUnion: rozwiązuje konflikt jako sumę zasad ustawionych przez co najmniej 1 administratora (w przypadku zasad reprezentowanych jako zbiór ciągów znaków). |
|
TopPriority: rozwiązuje konflikt w kolejności priorytetów od najwyższego do najniższego, która jest określona przez rolę agenta zarządzania zasadami dotyczącymi urządzeń:
|