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