El Software actualizable del documento de definición de compatibilidad de Android (CDD) requiere que los dispositivos implementen la clase SystemUpdatePolicy
. SystemUpdatePolicy
permite que la app del propietario del dispositivo (DO), si está presente, controle la instalación de actualizaciones del sistema.
Notificar a los propietarios de dispositivos
El cliente de actualización inalámbrica (OTA) debe notificar a las apps del propietario del dispositivo sobre las actualizaciones OTA entrantes a través de una API del sistema. El cliente de OTA también debe
incluir un registro de la marca de tiempo en el que la actualización de OTA estuvo disponible por primera vez. Los clientes de OTA pueden llamar a
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
para notificar a las apps del propietario del dispositivo. Si el cliente OTA no sabe si una actualización es un parche de seguridad, puede recurrir a DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Si no hay una actualización disponible, el cliente OTA lo informa configurando el argumento updateReceivedTime
en -1
.
Te recomendamos que envíes notificaciones cada vez que el cliente de OTA sondee el servidor de OTA o cuando se envíe una OTA al cliente. También puedes enviar notificaciones con mayor frecuencia.
Política de actualización del sistema
Android 9 mejora la capacidad de los propietarios de dispositivos para controlar las actualizaciones, ya que les permite posponer las actualizaciones inalámbricas por hasta 90 días. Enfocada en soluciones de dispositivos de uso específico (antes llamados COSU), esta función permite que los propietarios pausen la versión del SO que se ejecuta en los dispositivos durante períodos críticos, como las vacaciones.
Para cumplir con la CDD, el cliente de la OTA debe implementar políticas de comportamiento. El DO puede establecer las siguientes políticas, que deben ser respetadas por los subsistemas de actualización del sistema del dispositivo:
Los propietarios de dispositivos también pueden establecer períodos de inactividad (en Android 9 o versiones posteriores) que congelan la versión del SO durante períodos críticos, como días feriados u otros momentos de mucho trabajo. El sistema no instala actualizaciones inalámbricas durante un período de suspensión. Te recomendamos que uses SystemUpdatePolicy.InstallationOption
(consulta la siguiente sección). Sin embargo, el cliente de OTA también puede llamar a SystemUpdatePolicy.getFreezePeriods()
para verificar si el dispositivo está en un período de congelamiento.