Android 兼容性定义文档 (CDD) 可更新软件要求设备实现 SystemUpdatePolicy
类。SystemUpdatePolicy
可让设备所有者 (DO) 应用(如果存在)控制系统更新的安装。
通知设备所有者
无线下载 (OTA) 客户端必须使用系统 API 将传入的 OTA 更新通知给设备所有者应用。OTA 客户端还必须包含时间戳,记录 OTA 更新何时开始可用。OTA 客户端可以调用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
来通知设备所有者应用。如果 OTA 客户端不知道更新是否为安全补丁,则可回退至使用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
。
如果当前没有可用的更新,OTA 客户端可通过将 updateReceivedTime
参数设置为 -1
来报告此情况。我们建议每当 OTA 客户端对 OTA 服务器进行轮询或有 OTA 推送到客户端时都发送通知。您还可以更频繁地发送通知。
系统更新政策
Android 9 允许设备所有者将 OTA 更新推迟长达 90 天,增强了设备所有者控制更新的能力。此功能主要适用于专用设备(之前称为 COSU)解决方案,可让所有者在重要时段(如节假日)暂停在设备上运行的操作系统版本更新。
为遵守 CDD 的要求,OTA 客户端必须实施行为政策。设备所有者可以设置下列政策,设备系统更新子系统必须遵守这些政策:
设备所有者还可以通过设置冻结时段(在 Android 9 或更高版本中),在重要时段(如节假日或其他繁忙时段)冻结操作系统版本。系统在冻结时段不会安装 OTA 更新。我们建议使用 SystemUpdatePolicy.InstallationOption
(请参见下一部分);不过,OTA 客户端还可以调用 SystemUpdatePolicy.getFreezePeriods()
来检查设备是否处于冻结时段。