نرم افزار قابل به روز رسانی سند تعریف سازگاری Android (CDD) به دستگاه ها نیاز دارد تا کلاس SystemUpdatePolicy
را پیاده سازی کنند. SystemUpdatePolicy
به برنامه مالک دستگاه (DO) اجازه میدهد، در صورت وجود، نصب بهروزرسانیهای سیستم را کنترل کند.
به صاحبان دستگاه اطلاع دهید
سرویس گیرنده هوایی (OTA) باید با استفاده از API سیستم، برنامههای مالک دستگاه را از بهروزرسانیهای OTA دریافتی مطلع کند. سرویس گیرنده OTA همچنین باید زمانی که بهروزرسانی OTA برای اولین بار در دسترس قرار گرفت، دارای یک ضبط مهر زمانی باشد. سرویس گیرندگان OTA می توانند با DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
تماس بگیرند تا به برنامه های مالک دستگاه اطلاع دهند. اگر سرویس گیرنده OTA نداند که آیا به روز رسانی یک وصله امنیتی است، مشتری OTA می تواند از DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
استفاده کند.
اگر یک بهروزرسانی در حال حاضر در دسترس نیست، مشتری OTA با تنظیم آرگومان updateReceivedTime
روی -1
این را گزارش میکند. توصیه می کنیم هر زمان که مشتری OTA از سرور OTA نظرسنجی می کند یا زمانی که یک OTA به مشتری ارسال می شود، اعلان ارسال کنید. همچنین می توانید اعلان ها را به دفعات بیشتر ارسال کنید.
خط مشی به روز رسانی سیستم
اندروید 9 توانایی کنترل بهروزرسانیها را برای دارندگان دستگاه افزایش میدهد و به دارندگان دستگاه اجازه میدهد بهروزرسانیهای OTA را تا 90 روز به تعویق بیاندازند. این ویژگی با تمرکز بر راهحلهای دستگاه اختصاصی (که قبلاً COSU نامیده میشد)، به دارندگان این امکان را میدهد تا نسخه سیستمعامل در حال اجرا بر روی دستگاهها را در دورههای بحرانی، مانند تعطیلات، متوقف کنند.
برای رعایت CDD، مشتری OTA باید سیاست های رفتاری را اجرا کند. DO می تواند خط مشی های زیر را تنظیم کند که باید توسط زیرسیستم های به روز رسانی سیستم دستگاه رعایت شود:
دارندگان دستگاه همچنین میتوانند دورههای توقف (در Android 9 یا جدیدتر) را تنظیم کنند که نسخه سیستم عامل را در دورههای بحرانی مانند تعطیلات یا دیگر زمانهای شلوغ ثابت کند. سیستم بهروزرسانیهای OTA را در طول دوره توقف نصب نمیکند. توصیه میکنیم از SystemUpdatePolicy.InstallationOption
استفاده کنید (به بخش زیر مراجعه کنید)، با این حال مشتری OTA همچنین میتواند SystemUpdatePolicy.getFreezePeriods()
را برای بررسی اینکه آیا دستگاه در دوره انجماد قرار دارد تماس بگیرد.