Effective in 2026, to align with our trunk stable development model and ensure platform stability for the ecosystem, we will publish source code to AOSP in Q2 and Q4. For building and contributing to AOSP, use android-latest-release. The android-latest-release manifest branch will always reference the most recent release pushed to AOSP. For more information, see Changes to AOSP.
Device policy resolution framework
Stay organized with collections
Save and categorize content based on your preferences.
Starting with Android 14, multiple device policy
management agents can set policies using
DevicePolicyManager
APIs.
General principles
In cases where more than one device policy management agent enforces policies
over a user:
Device policy management agents can query the enforced or resolved policy
for any policy they are able to set.
Every policy set results in a callback (onPolicySetResult) indicating
either that the policy was set correctly or failed to set for a given
reason (such as a policy conflict or hardware failure).
If the resolved state of a policy changes later, a callback
(onPolicyChanged) is received indicating if the policy matches what that
agent set.
Most policies operate on a strictest-win basis. This means that the
strictest policy chosen by any device policy management agent gets enforced.
Android 14 (API level 34) and higher
In Android 14 (API level 34) and higher,
Android-compatible devices must implement the policy resolution mechanism as
defined in the following table to resolve conflicts when a policy is set by more
than one device policy management agent. The resolution mechanisms referenced in
the following table (MostRecent, MostRestrictive, StringSetUnion, and
TopPriority) are class names of the resolution mechanisms defined in the
Android Open Source Project.
Policies identified by PolicyIdentifier instances document their resolution
strategy individually in their API reference documentation.
TopPriority: Resolves with the following most-to-least
priority order defined by the role held by the device policy
management agent:
The device lock admin
The enterprise admin
Any other admin
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2026-10-15 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-10-15 UTC."],[],[]]