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

ตั้งแต่ Android 12 เป็นต้นไป Android สามารถใช้แหล่งเวลาภายนอก เพื่อแนะนำเวลา Epoch ของ Unix ให้กับบริการ 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 จะใช้การประทับเวลาที่ส่งไปยังเมธอดนี้เพื่อตั้งเวลา Epoch ของ Unix ปัจจุบัน