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

ใน 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 จะใช้การประทับเวลาที่ส่งไปยังเมธอดนี้เพื่อตั้งเวลา Epoch ปัจจุบัน