设备政策解决框架

从 Android 14 开始,多个设备政策管理代理可以使用 DevicePolicyManager API 设置政策。

一般原则

如果有多个设备政策管理代理针对用户强制执行政策,则:

  • 设备政策管理代理可以查询已强制执行/已解决的政策,以了解其能够设置的政策。
  • 设置的每项政策都会产生回调 (onPolicySetResult),指示政策已正确设置还是因特定原因(例如政策冲突或硬件故障)设置失败。
  • 如果政策的解决状态之后发生变化,系统会发送回调 (onPolicyChanged),指示政策是否与代理设置的内容匹配。
  • 大多数政策的执行标准都是最严格的。这意味着系统会强制执行任何设备政策管理代理选择的最严格政策。

Android 14(API 级别 34)及更高版本

在 Android 14(API 级别 34)及更高版本中,与 Android 兼容的设备必须实现下表中定义的政策解决机制,以解决多个设备政策管理代理设置了同一政策时发生的冲突。下表中引用的解决机制(MostRecentMostRestrictiveStringSetUnionTopPriority)是 Android 开源项目中定义的解决机制的类名称。

DevicePolicyManager API 解决机制
MostRecent:如果多个管理员进行了设置,系统会强制执行最新的政策。
MostRestrictive:如果任一管理员已设置用户限制,则设置用户限制。
StringSetUnion:按照由一个或多个管理员设置的政策集合的形式解决(适用于以一组字符串表示的政策)。
TopPriority:按照由设备政策管理代理所担任的角色定义的以下优先级顺序(从高到低)解决:
  1. 设备锁定管理员
  2. 企业管理员
  3. 任何其他管理员