デバイス ポリシー解決フレームワーク

Android 14 以降では、DevicePolicyManager API を使用して、複数のデバイス ポリシー管理エージェントでポリシーを設定できます。

一般的な原則

複数のデバイス ポリシー管理エージェントがユーザーに対してポリシーを適用する場合:

  • デバイス ポリシー管理エージェントは、適用済みまたは解決済みのポリシーに対して、設定可能なポリシーがあるかどうかを問い合わせることができます。
  • 各ポリシーはコールバック(onPolicySetResult)に結果を設定して、ポリシーが正しく設定されたか、特定の理由(ポリシーの競合、ハードウェアの障害など)で設定に失敗したかを示します。
  • ポリシーの解決済みの状態が後で変更された場合は、そのエージェントが設定したものとポリシーが一致しているかどうかを示すコールバック(onPolicyChanged)を受け取ります。
  • ほとんどのポリシーは、最も厳しいポリシーを優先する方式で運用されます。つまり、デバイス ポリシー管理エージェントによって選択された最も厳しいポリシーが適用されます。

Android 14(API レベル 34)以降

Android 14(API レベル 34)以降の Android 互換デバイスでは、複数のデバイス ポリシー管理エージェントによってポリシーが設定された場合の競合を解決するため、以下の表で定義されているとおりにポリシー解決メカニズムを実装する必要があります。以下の表に記載されている解決メカニズム(MostRecentMostRestrictiveStringSetUnionTopPriority)は、Android オープンソース プロジェクトで定義されている解決メカニズムのクラス名です。

DevicePolicyManager API 解決メカニズム
MostRecent: 複数の管理者によってポリシーが設定された場合は、最新のポリシーが適用されます。
MostRestrictive: いずれか 1 人の管理者がポリシーを設定した場合は、ユーザー制限を設定します。
StringSetUnion: 1 人以上の管理者によって設定されたポリシーの結合として解決します(ポリシーが文字列のセットとして表現されている場合)。
TopPriority: デバイス ポリシー管理エージェントが持つロールによって定義される、以下の優先度の高い順で解決します。
  1. デバイスロックの管理者
  2. 企業の管理者
  3. その他の管理者