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 los dispositivos
El cliente inalámbrico (OTA) debe notificar a las apps del propietario del dispositivo sobre las actualizaciones OTA entrantes con una API del sistema. El cliente OTA también debe incluir una marca de tiempo de cuando la actualización OTA estuvo disponible por primera vez. Los clientes 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 volver a usar DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Si no hay una actualización disponible en ese momento, el cliente OTA lo informa configurando el argumento updateReceivedTime
como -1
.
Te recomendamos que envíes notificaciones cada vez que el cliente OTA sondee el servidor 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. Esta función se enfoca en soluciones de dispositivos dedicados (antes llamados COSU) y permite que los propietarios detengan la versión del SO que se ejecuta en los dispositivos durante períodos críticos, como las festividades.
Para cumplir con el CDD, el cliente de OTA debe implementar políticas de comportamiento. El DO puede establecer las siguientes políticas, que los subsistemas de actualización del sistema del dispositivo deben cumplir:
Los propietarios de dispositivos también pueden establecer períodos de inactividad (en Android 9 o versiones posteriores) que inhabiliten la versión del SO durante períodos críticos, como las festividades o cualquier otro momento de gran actividad. 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 OTA también puede llamar a SystemUpdatePolicy.getFreezePeriods()
para verificar si el dispositivo está en un período de inactividad.