Ramy rozwiązywania problemów z zasadami dotyczącymi urządzeń

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ń:
  1. Administrator blokady urządzenia
  2. Administrator w firmie
  3. Inny administrator