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

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