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

Kể từ Android 12, Android có thể tuỳ ý sử dụng một nguồn thời gian bên ngoài để đề xuất thời gian bắt đầu tính từ ngày 1 tháng 1 năm 1970 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 bạn cung cấp các đề xuất hoàn toàn tuỳ chỉnh về thời gian 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ó nên cập nhật đồng hồ hệ thống hay không dựa trên các quy tắc ưu tiên thời gian tự động đã định cấu hình.

Triển khai

Để hỗ trợ tính năng phát hiện thời gian bên ngoài, bạn phải triển khai một thành phần gửi đề xuất về thời gian bên ngoài đến dịch vụ time_detector thông qua một lệnh gọi API hệ thống.

Để định cấu hình nguồn 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 cho biết Android sẽ ư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 hợp lệ nào về thời gian bên ngoài, thì nguồn gốc tiếp theo (gnss trong trường hợp này) sẽ được dùng:

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

Để cung cấp cho hệ thống một đề xuất về thời gian bên ngoài, hãy sử dụng phương thức 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 có đề xuất thời gian nào có mức độ ưu tiên cao hơn, thì Android sẽ dùng dấu thời gian được truyền đến phương thức này để đặt thời gian bắt đầu của hệ thống dấu thời gian UNIX hiện tại.