Android Uyumluluk Tanımlama Belgesi (CDD) Güncellenebilir Yazılım, cihazların SystemUpdatePolicy
sınıfını uygulamasını zorunlu kılar. SystemUpdatePolicy
, varsa cihaz sahibi (DO) uygulamasının sistem güncellemelerinin yüklenmesini kontrol etmesine olanak tanır.
Cihaz sahiplerini bilgilendirme
Kablosuz (OTA) istemcisi, sistem API'sini kullanarak cihaz sahibi uygulamalarını gelen OTA güncellemeleri hakkında bilgilendirmelidir. OTA istemcisi, OTA güncellemesinin ilk kez kullanıma sunulduğu zaman damgasını da içermelidir. OTA istemcileri, cihaz sahibi uygulamalarına bildirim göndermek için DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
hizmetini çağırabilir. OTA istemcisi, bir güncellemenin güvenlik yaması olup olmadığını bilmiyorsa DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
değerini kullanabilir.
Şu anda güncelleme yoksa OTA istemcisi, updateReceivedTime
bağımsız değişkenini -1
olarak ayarlayarak bunu bildirir.
OTA istemcisi OTA sunucusunu her sorguladığında veya istemciye OTA gönderildiğinde bildirim göndermenizi öneririz. Bildirimleri daha sık da gönderebilirsiniz.
Sistem güncelleme politikası
Android 9, OTA güncellemelerini 90 güne kadar ertelemelerine olanak tanıyarak cihaz sahiplerinin güncellemeleri kontrol etme olanağını artırır. Özel cihaz (eski adıyla COSU) çözümlerine odaklanan bu özellik, sahiplerinin tatiller gibi kritik dönemlerde cihazlarda çalışan işletim sistemi sürümünü duraklatmasına olanak tanır.
OTA istemcisinin, CDD'ye uymak için davranış politikalarını uygulaması gerekir. DO, cihaz sistem güncelleme alt sistemlerinin uyması gereken aşağıdaki politikaları ayarlayabilir:
Cihaz sahipleri, tatiller veya yoğun dönemler gibi kritik dönemlerde işletim sistemi sürümünü donduracak dondurma dönemleri de belirleyebilir (Android 9 veya sonraki sürümlerde). Sistem, dondurma döneminde OTA güncellemelerini yüklemez. SystemUpdatePolicy.InstallationOption
kullanmanızı öneririz (aşağıdaki bölüme bakın). Ancak OTA istemcisi, cihazın dondurma döneminde olup olmadığını kontrol etmek için SystemUpdatePolicy.getFreezePeriods()
işlevini de çağırabilir.