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 của hệ thống Unix cho dịch vụ time_detector
. Tính năng này không được bật theo mặc định trong AOSP (Dự án nguồn mở Android).
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 các đề xuất thời gian hoàn toàn tuỳ 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.
Triển khai
Để hỗ trợ tính năng 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 các đề xuất về thời gian bên ngoài đến dịch vụ 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 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 yêu cầu Android đưa ra đề xuất thời gian bên ngoài có mức độ ưu tiên cao nhất 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ì nguồn 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 vào phương thức này để đặt thời gian Unix hiện tại.