Android 14 以降では、DevicePolicyManager
API を使用して、複数のデバイス ポリシー管理エージェントでポリシーを設定できます。
一般的な原則
複数のデバイス ポリシー管理エージェントがユーザーに対してポリシーを適用する場合:
- デバイス ポリシー管理エージェントは、適用済みまたは解決済みのポリシーに対して、設定可能なポリシーがあるかどうかを問い合わせることができます。
- 各ポリシーはコールバック(
onPolicySetResult
)に結果を設定して、ポリシーが正しく設定されたか、特定の理由(ポリシーの競合、ハードウェアの障害など)で設定に失敗したかを示します。 - ポリシーの解決済みの状態が後で変更された場合は、そのエージェントが設定したものとポリシーが一致しているかどうかを示すコールバック(
onPolicyChanged
)を受け取ります。 - ほとんどのポリシーは、最も厳しいポリシーを優先する方式で運用されます。つまり、デバイス ポリシー管理エージェントによって選択された最も厳しいポリシーが適用されます。
Android 14(API レベル 34)以降
Android 14(API レベル 34)以降の Android 互換デバイスでは、複数のデバイス ポリシー管理エージェントによってポリシーが設定された場合の競合を解決するため、以下の表で定義されているとおりにポリシー解決メカニズムを実装する必要があります。以下の表に記載されている解決メカニズム(MostRecent
、MostRestrictive
、StringSetUnion
、TopPriority
)は、Android オープンソース プロジェクトで定義されている解決メカニズムのクラス名です。
DevicePolicyManager API | 解決メカニズム |
---|---|
MostRecent : 複数の管理者によってポリシーが設定された場合は、最新のポリシーが適用されます。 |
|
|
MostRestrictive : いずれか 1 人の管理者がポリシーを設定した場合は、ユーザー制限を設定します。 |
StringSetUnion : 1 人以上の管理者によって設定されたポリシーの結合として解決します(ポリシーが文字列のセットとして表現されている場合)。 |
|
TopPriority : デバイス ポリシー管理エージェントが持つロールによって定義される、以下の優先度の高い順で解決します。
|