با شروع از اندروید ۱۴، چندین عامل مدیریت خطمشی دستگاه میتوانند با استفاده از رابطهای برنامهنویسی کاربردی DevicePolicyManager خطمشیها را تنظیم کنند.
اصول کلی
در مواردی که بیش از یک عامل مدیریت سیاست دستگاه، سیاستها را بر روی یک کاربر اعمال میکند:
- عاملهای مدیریت سیاست دستگاه میتوانند سیاست اعمالشده یا حلشده را برای هر سیاستی که قادر به تنظیم آن هستند، جستجو کنند.
- هر مجموعه سیاست منجر به یک فراخوانی (
onPolicySetResult) میشود که نشان میدهد یا سیاست به درستی تنظیم شده یا به دلیل خاصی (مانند تداخل سیاست یا خرابی سختافزار) تنظیم نشده است. - اگر وضعیت حلشدهی یک سیاست بعداً تغییر کند، یک فراخوانی برگشتی (
onPolicyChanged) دریافت میشود که نشان میدهد آیا این سیاست با آنچه آن عامل تنظیم کرده است، مطابقت دارد یا خیر. - بیشتر سیاستها بر اساس اصل «سختترین-برد» عمل میکنند. این بدان معناست که سختگیرانهترین سیاستی که توسط هر عامل مدیریت سیاست دستگاه انتخاب میشود، اجرا میشود.
اندروید ۱۴ (سطح API ۳۴) و بالاتر
در اندروید ۱۴ (سطح API ۳۴) و بالاتر، دستگاههای سازگار با اندروید باید مکانیزم حل اختلاف سیاست را همانطور که در جدول زیر تعریف شده است، پیادهسازی کنند تا تداخلها را هنگامی که یک سیاست توسط بیش از یک عامل مدیریت سیاست دستگاه تنظیم میشود، حل کنند. مکانیزمهای حل اختلاف که در جدول زیر به آنها اشاره شده است ( MostRecent ، MostRestrictive ، StringSetUnion و TopPriority ) نام کلاسهای مکانیزمهای حل اختلاف تعریف شده در پروژه متنباز اندروید هستند.
| رابط برنامهنویسی کاربردی مدیریت سیاست دستگاه | مکانیزم تفکیکپذیری |
|---|---|
MostRecent : سیاست most-recent زمانی اعمال میشود که توسط چندین مدیر تنظیم شده باشد. | |
| MostRestrictive : در صورتی که مدیری محدودیتی برای کاربر تعیین کرده باشد، آن را تنظیم میکند. |
StringSetUnion : به عنوان اتحاد سیاستهای تعیینشده توسط یک یا چند مدیر (برای سیاستهایی که به صورت مجموعهای از رشتهها نمایش داده میشوند) تعریف میشود. | |
TopPriority : با ترتیب اولویت از بیشترین به کمترین زیر که توسط نقشی که عامل مدیریت سیاست دستگاه بر عهده دارد، تعریف میشود، حل میشود:
|