Phát hiện thời gian bên ngoài

Từ Android 12, Android có thể tuỳ ý sử dụng nguồn thời gian để đề xuất thời gian bắt đầu của hệ thống Unix cho Dịch vụ time_detector. Đây không phải được bật theo mặc định trong AOSP.

Nguồn thời gian bên ngoài cho phép nhà sản xuất thiết bị cung cấp hoàn toàn đề xuất thời gian tuỳ chỉnh cho Android. Sau nhận đề xuất từ nguồn gốc thời gian bên ngoài, dịch vụ time_detector xác định xem có cập nhật đồng hồ hệ thống bằng cách sử dụng quy tắc ưu tiên.

Triển khai

Để hỗ trợ phát hiện thời gian bên ngoài, nhà sản xuất thiết bị phải triển khai thành phần gửi đề xuất thời gian bên ngoài cho time_detector thông qua lệnh gọi API hệ thống.

Để định cấu hình nguồn bên ngoài, hãy sử dụng core/res/res/values/config.xml tệp cấu hình máy chủ hệ thống. Thêm giá trị external vào config_autoTimeSourcesPriority.

Ví dụ sau đây yêu cầu Android đưa ra các đề xuất theo thời gian bên ngoài mức độ ưu tiên cao nhất khi đặt đồng hồ hệ thống. Nếu không có bên ngoài hợp lệ thời gian gợi ý thì điểm khởi hành tiếp theo (gnss) trong trường hợp này sẽ được sử dụng.

<string-array name="config_autoTimeSourcesPriority">
        <item>external</item>
        <item>gnss</item>
</string-array>

Để đề xuất thời gian bên ngoài cho hệ thống, hãy sử dụng suggestExternalTime() trong TimeManager. Nếu nguồn bên ngoài được định cấu hình bằng config_autoTimeSourcesPriority trong tệp cấu hình và không phiên bản cao hơn đề xuất thời gian ưu tiên, Android sẽ sử dụng được truyền vào phương thức này để đặt thời gian bắt đầu của hệ thống Unix hiện tại.