การตรวจหาเวลาภายนอก

ตั้งแต่ Android 12 เป็นต้นไป Android อาจใช้แหล่งที่มาของเวลาภายนอกเพื่อแนะนำเวลา Unix Epoch ให้กับบริการ time_detector ซึ่งจะไม่เปิดใช้โดยค่าเริ่มต้นใน AOSP

ต้นทางเวลาภายนอกช่วยให้ผู้ผลิตอุปกรณ์ระบุการแนะนำเวลาที่กำหนดเองทั้งหมดให้กับ Android ได้ หลังจากได้รับคำแนะนำจากแหล่งที่มาของเวลาภายนอก บริการ time_detector จะพิจารณาว่าจะอัปเดตนาฬิกาของระบบโดยใช้กฎการจัดลำดับความสำคัญที่กำหนดค่าไว้หรือไม่

การใช้งาน

หากต้องการรองรับการตรวจหาเวลาภายนอก ผู้ผลิตอุปกรณ์ต้องใช้คอมโพเนนต์ที่ส่งการแนะนำเวลาภายนอกไปยังtime_detectorบริการผ่านคําเรียก API ของระบบ

หากต้องการกำหนดค่าต้นทางภายนอก ให้ใช้core/res/res/values/config.xml ไฟล์การกําหนดค่าเซิร์ฟเวอร์ระบบ เพิ่มค่า external ลงใน config_autoTimeSourcesPriority

ตัวอย่างต่อไปนี้บอกให้ Android ให้ความสำคัญกับเวลาภายนอกเป็นลำดับความสำคัญสูงสุดเมื่อตั้งค่านาฬิกาของระบบ หากไม่มีคำแนะนำเวลาภายนอกที่ถูกต้อง ระบบจะใช้ต้นทางถัดไป ซึ่งในกรณีนี้คือ gnss

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

หากต้องการระบุเวลาภายนอกที่แนะนำให้กับระบบ ให้ใช้วิธี suggestExternalTime() ใน TimeManager หากกำหนดค่าต้นทางภายนอกโดยใช้ config_autoTimeSourcesPriority ในไฟล์การกําหนดค่าและไม่มีคำแนะนำเวลาที่มีลําดับความสําคัญสูงกว่า Android จะใช้การประทับเวลาที่ส่งไปยังเมธอดนี้เพื่อตั้งค่าเวลาปัจจุบันตามยุค Unix