Phần mềm có thể cập nhật theo Tài liệu định nghĩa về khả năng tương thích (CDD) với Android yêu cầu các thiết bị phải triển khai lớp SystemUpdatePolicy
. SystemUpdatePolicy
cho phép ứng dụng chủ sở hữu thiết bị (DO), nếu có, kiểm soát việc cài đặt bản cập nhật hệ thống.
Thông báo cho chủ sở hữu thiết bị
Ứng dụng qua mạng không dây (OTA) phải thông báo cho ứng dụng của chủ sở hữu thiết bị về các bản cập nhật OTA sắp tới bằng API hệ thống. Ứng dụng OTA cũng phải bao gồm bản ghi dấu thời gian khi bản cập nhật OTA được cung cấp lần đầu tiên. Ứng dụng OTA có thể gọi DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
để thông báo cho các ứng dụng của chủ sở hữu thiết bị. Nếu ứng dụng OTA không biết liệu bản cập nhật có phải là bản vá bảo mật hay không, thì ứng dụng OTA có thể quay lại sử dụng DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Nếu hiện không có bản cập nhật, ứng dụng OTA sẽ báo cáo điều này bằng cách đặt đối số updateReceivedTime
thành -1
.
Bạn nên gửi thông báo bất cứ khi nào ứng dụng OTA thăm dò ý kiến máy chủ OTA hoặc khi một OTA được đẩy đến ứng dụng. Bạn cũng có thể gửi thông báo thường xuyên hơn.
Chính sách cập nhật hệ thống
Android 9 giúp chủ sở hữu thiết bị có thể kiểm soát bản cập nhật bằng cách cho phép họ hoãn bản cập nhật OTA lên đến 90 ngày. Tập trung vào các giải pháp thiết bị chuyên dụng (trước đây gọi là COSU), tính năng này cho phép chủ sở hữu tạm dừng phiên bản hệ điều hành chạy trên thiết bị trong các khoảng thời gian quan trọng, chẳng hạn như ngày lễ.
Để tuân thủ CDD, ứng dụng OTA phải triển khai các chính sách về hành vi. DO có thể đặt các chính sách sau đây mà các hệ thống con cập nhật hệ thống thiết bị phải tuân thủ:
Chủ sở hữu thiết bị cũng có thể đặt khoảng thời gian đóng băng (trong Android 9 trở lên) để đóng băng phiên bản hệ điều hành trong những khoảng thời gian quan trọng, chẳng hạn như ngày lễ hoặc những thời điểm bận rộn khác. Hệ thống không cài đặt bản cập nhật OTA trong khoảng thời gian đóng băng. Bạn nên sử dụng SystemUpdatePolicy.InstallationOption
(xem phần sau), tuy nhiên ứng dụng OTA cũng có thể gọi SystemUpdatePolicy.getFreezePeriods()
để kiểm tra xem thiết bị có đang trong thời gian đóng băng hay không.