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

Từ Android 12, Android có thể tùy ý sử dụng nguồn thời gian bên ngoài để đề xuất thời gian kỷ nguyên Unix cho dịch vụ time_detector . Tính năng này không được bật theo mặc định trong AOSP.

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

Thực hiện

Để 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 một thành phần gửi đề xuất thời gian bên ngoài tới dịch vụ time_detector thông qua lệnh gọi API hệ thống.

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

Ví dụ sau yêu cầu Android ưu tiên cao nhất cho các đề xuất về thời gian bên ngoài khi đặt đồng hồ hệ thống. Nếu không có đề xuất thời gian bên ngoài hợp lệ thì điểm gốc 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>

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