ภาพรวมเวลา

หน้านี้อธิบายวิธีการตรวจหาเวลาและโซนเวลาบน Android ซึ่งรวมถึงวิธีที่ Android ตรวจหาเวลาและเขตเวลาโดยอัตโนมัติ ตัวเลือกการกำหนดค่าสำหรับผู้ผลิตอุปกรณ์ และข้อมูลการทดสอบ

ภาพรวมของเวลาและโซนเวลา

ในการกำหนดเวลาท้องถิ่นของผู้ใช้เพื่อแสดงในสถานที่ต่างๆ เช่น แถบสถานะ Android จะติดตามสถานะที่เกี่ยวข้องแต่เป็นอิสระสองสถานะ:

  • เวลายุคปัจจุบันของ Unix
  • โซนเวลาปัจจุบัน

เวลายุคปัจจุบันของ Unix และเขตเวลาปัจจุบันเป็นสถานะทั่วทั้งอุปกรณ์ ซึ่งหมายความว่าผู้ใช้ทุกคนในอุปกรณ์จะใช้ร่วมกัน

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

โซนเวลาปัจจุบันจะกำหนดการปรับเปลี่ยนเพื่อแปลงเวลายุค Unix ปัจจุบันเป็นเวลาท้องถิ่น ตัวอย่างเช่น ในช่วงฤดูร้อนในลอสแอนเจลิส อุปกรณ์จะลบ 7 ชั่วโมงจากยุคปัจจุบันของ Unix และในฤดูหนาวจะลบ 8 ชั่วโมง

เพื่อรองรับการคำนวณเวลาท้องถิ่น อุปกรณ์ Android ทั้งหมดมี ฐานข้อมูลกฎเขตเวลาทั่วโลกทั้งหมด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกฎเขตเวลา โปรดดู กฎเขตเวลา

เมื่อผู้ใช้เดินทางไปยังตำแหน่งใหม่ที่ใช้เขตเวลาอื่น ไม่จำเป็นต้องปรับเวลายุค Unix ปัจจุบัน แต่โดยทั่วไปผู้ใช้ต้องการดูเวลาท้องถิ่นมากกว่าเวลาในตำแหน่งก่อนหน้า การเปลี่ยนโซนเวลาปัจจุบันช่วยให้แน่ใจว่ามีการใช้ออฟเซ็ตที่ถูกต้องกับเวลายุคปัจจุบันของ Unix เพื่อแสดงเวลาท้องถิ่นที่ถูกต้องสำหรับตำแหน่งใหม่

AOSP อนุญาตให้ผู้ใช้ควบคุมได้อย่างอิสระว่าจะตั้งค่าเวลาและโซนเวลาโดยอัตโนมัติหรือไม่ผ่านกลไกต่อไปนี้

  • การตรวจจับเวลาอัตโนมัติ: ตรวจสอบให้แน่ใจว่าอุปกรณ์มีเวลายุค Unix ปัจจุบันที่ถูกต้อง
  • การตรวจจับโซนเวลาอัตโนมัติ: ตรวจสอบให้แน่ใจว่าอุปกรณ์มีโซนเวลาปัจจุบันที่ถูกต้อง

การตรวจจับเวลาอัตโนมัติ

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

บริการ time_detector

บริการ time_detector ซึ่งมีอยู่ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป จัดการการตรวจจับเวลาอัตโนมัติ โดยจะปรับเวลายุค Unix ปัจจุบันของอุปกรณ์ตามความจำเป็นเมื่อเปิดใช้งานการตรวจจับเวลาอัตโนมัติ

บริการ time_detector อยู่ในสถานะใดสถานะหนึ่งจากสองสถานะเสมอ: ไม่แน่นอน หรือ แน่นอน สถานะที่แน่นอนหรือความไม่แน่นอนของบริการจะพิจารณาจาก คำแนะนำด้านเวลา ที่ได้รับจากแหล่งต่างๆ

เมื่อบริการ time_detector แน่นอน ซึ่งหมายความว่าได้รับคำแนะนำเกี่ยวกับข้อมูลเวลายุค Unix บริการจะแทนที่เวลายุค Unix ปัจจุบัน หากคำแนะนำเวลาแตกต่างจากเวลายุค Unix ปัจจุบัน

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

หากต้องการกำหนดเวลายุคปัจจุบันของ Unix โดยอัตโนมัติ อุปกรณ์จะมีแหล่งที่มาต่างๆ ที่สามารถใช้ได้ สิ่งเหล่านี้เรียกว่า ต้นกำเนิด ในเอกสารนี้ บริการ time_detector ถือว่าลำดับของคำแนะนำมีความแตกต่างกันโดยขึ้นอยู่กับที่มา

บริการ time_detector เป็นแบบเก็บสถานะ ซึ่งหมายความว่าจะเก็บบันทึกคำแนะนำล่าสุดที่ทำโดยแต่ละต้นทาง มีข้อเสนอแนะใหม่ให้กับ time_detector หากต้นทางมีข้อมูลเวลายุค Unix ที่ใหม่กว่า บริการ time_detector จะประเมินคำแนะนำใหม่และที่มีอยู่อีกครั้ง และอัปเดตสถานะของอุปกรณ์เมื่อได้รับคำแนะนำ

แม้ว่าเวลา UTC จะมีการตกลงกันในระดับสากล แต่ก็มีสาเหตุหลายประการที่ทำให้การกำหนดเวลายุค Unix ปัจจุบันไม่ได้ตรงไปตรงมาเสมอไปสำหรับอุปกรณ์ Android:

  • เวลายุค Unix เป็นระบบบอกเวลาที่แตกต่างไปจากเวลา UTC อย่างละเอียด การแปลงระหว่างสองสิ่งนี้ต้องอาศัยความรู้ว่าวินาทีอธิกสุรทินจะเกิดขึ้นเมื่อใด และจะจัดการอย่างไรโดยต้นกำเนิด
  • Origins อาจมีจำหน่ายเฉพาะบางช่วงเวลาหรือภายใต้สถานการณ์บางอย่างเท่านั้น ตัวอย่างเช่น หากต้นทางต้องมีการเชื่อมต่อเครือข่าย ต้นทางอาจใช้ได้เฉพาะในขณะที่อุปกรณ์เชื่อมต่อกับอินเทอร์เน็ตเท่านั้น
  • ต้นกำเนิดอาจไม่ถูกต้อง ไม่แน่ชัด หรือมีข้อผิดพลาด ตัวอย่างเช่น หากหอเซลล์โทรศัพท์ไม่ได้ติดตาม "เวลาสากล" อย่างถูกต้อง ต้นทางโทรศัพท์อาจให้คำแนะนำเวลาที่ไม่ถูกต้อง
  • อาจมีความไม่ถูกต้องเกิดขึ้นขณะรับเวลายุค Unix ตัวอย่างเช่น ความล่าช้าของเครือข่าย การบัฟเฟอร์ หรือการจัดกำหนดการกระบวนการอาจทำให้เวลา Unix epoch ไม่ถูกต้อง
  • นาฬิกาอ้างอิงที่ใช้ในการปรับคำแนะนำสำหรับเวลาที่ผ่านไปนับตั้งแต่ได้รับคำแนะนำอาจไม่ถูกต้อง

มีต้นทางการตรวจจับเวลาหลักสองต้นที่กำหนดค่าไว้เพื่อใช้เป็นค่าเริ่มต้นใน AOSP:

  • เครือข่าย : ใช้เซิร์ฟเวอร์เวลา Network Time Protocol (NTP)
  • ระบบโทรศัพท์: ใช้สัญญาณโทรศัพท์ของ Network Identity and Time Zone (NITZ)

ต้นกำเนิดทั้งระบบโทรศัพท์และเครือข่ายจำเป็นต้องมีการเชื่อมต่อกับเครือข่ายภายนอก ซึ่งอาจไม่พร้อมใช้งานเสมอไป

ตั้งแต่ Android 12 เป็นต้นไป Android ยังรองรับต้นทางต่อไปนี้ด้วย ซึ่งไม่ได้กำหนดค่าไว้เพื่อใช้ตามค่าเริ่มต้น

  • GNSS : ใช้ผู้ให้บริการตำแหน่ง GPS เพื่อรับเวลาจากแหล่ง GNSS
  • ภายนอก : ต้นกำเนิดทั่วไปที่ช่วยให้ผู้ผลิตอุปกรณ์สามารถรวมแหล่งที่มาของเวลายุค Unix ของตนเองได้

การตั้งค่าเวลา

ผู้ใช้สามารถเปิดใช้งานการตรวจจับเวลาอัตโนมัติใน ระบบ > วันที่และเวลา ในแอปการตั้งค่า AOSP

การตรวจจับเวลาอัตโนมัติในการตั้งค่า

รูปที่ 1 การตรวจจับเวลาอัตโนมัติในการตั้งค่า

ตารางต่อไปนี้อธิบายการควบคุมผู้ใช้สำหรับการตรวจหาเวลาในแอปการตั้งค่า AOSP

*ใน Android 11 และต่ำกว่า การตั้งค่านี้มีป้ายกำกับ ว่าใช้เวลาที่กำหนดโดยเครือข่าย

ตำแหน่งการตั้งค่า AOSP ชื่อการตั้งค่า AOSP ขอบเขต พฤติกรรม
ระบบ > วันที่และเวลา ตั้งเวลาอัตโนมัติ* ผู้ใช้ทั้งหมด

สลับ

เมื่อ เปิด อุปกรณ์จะรับผิดชอบในการตรวจจับเวลายุคปัจจุบันของ Unix เมื่อ ปิด ผู้ใช้จะได้รับการควบคุมเพื่อตั้งเวลาของอุปกรณ์ด้วยตนเอง

เมื่อผู้ใช้ป้อนเวลาด้วยตนเอง ผู้ใช้จะป้อนเวลาท้องถิ่น ไม่ใช่เวลายุค Unix เวลายุค Unix ปัจจุบันคำนวณโดยใช้เขตเวลาปัจจุบันเพื่อรับเวลายุค Unix

การกำหนดค่า

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

การจัดลำดับความสำคัญของแหล่งกำเนิด

จาก Android 12 ผู้ผลิตอุปกรณ์สามารถเปลี่ยนไฟล์การกำหนดค่า core/res/res/values/config.xml เพื่อระบุต้นทางเวลาที่จะรวมในการตรวจหาเวลาอัตโนมัติ และลำดับความสำคัญที่ time_detector พิจารณาถึงต้นทางเหล่านี้

สำหรับอุปกรณ์ที่ใช้ Android 11 หรือต่ำกว่า ลำดับความสำคัญดั้งเดิมจะถูกฮาร์ดโค้ดเป็น ["telephony", "network"] ซึ่งหมายความว่าคำแนะนำด้านโทรศัพท์จะมีลำดับความสำคัญสูงกว่าคำแนะนำเครือข่าย

การกำหนดค่า AOSP เริ่มต้นจะเป็นดังนี้:

<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
     take precedence over lower ones.
     See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
    <item>network</item>
    <item>telephony</item>
</string-array>

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

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

ค่าต้นกำเนิดที่อนุญาตคือ:

ขอบเขตเวลาที่อนุญาต

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

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

สำหรับอุปกรณ์ที่ใช้ Android 11 หรือต่ำกว่า บริการ time_detector จะไม่ตรวจสอบคำแนะนำเวลายุค Unix ที่เข้ามา

การดีบักและการทดสอบเวลา

ส่วนนี้ให้ข้อมูลเกี่ยวกับวิธีการแก้ไขจุดบกพร่องและทดสอบพฤติกรรมของบริการ time_detector และส่วนประกอบอื่นๆ ที่ต้นทางทั้งหมดใช้ร่วมกัน

การโต้ตอบกับบริการ time_detector

หากต้องการดูการกำหนดค่าของบริการ time_detector และสถานะของบริการ time_detector ให้ใช้:

adb shell cmd time_detector dump

หากต้องการดูคำสั่งเพิ่มเติมสำหรับการดีบักและทดสอบการตรวจหาโซนเวลา ให้ใช้:

adb shell cmd time_detector help

ผลลัพธ์วิธีใช้ยังอธิบายคุณสมบัติของบริการ device_config ที่สามารถใช้เพื่อส่งผลต่อพฤติกรรมของ time_detector สำหรับการทดสอบหรือในการใช้งานจริง สำหรับรายละเอียด โปรดดู การกำหนดค่าอุปกรณ์โดยใช้บริการ device_config

ในการตรวจสอบการตรวจจับเวลาอัตโนมัติ ผู้ทดสอบต้องทราบว่าบริการ time_detector ใช้ต้นทางใด ต่อไปนี้เป็นตัวอย่างของเอาต์พุตจากคำสั่ง adb shell cmd time_detector dump โดยมีข้อมูลเกี่ยวกับต้นทางปัจจุบันและสถานะบริการเป็นตัวหนา:

$ adb shell cmd time_detector dump

TimeDetectorStrategy:
  mLastAutoSystemClockTimeSet=null
  mEnvironment.isAutoTimeDetectionEnabled()=true
  mEnvironment.elapsedRealtimeMillis()=23717241
  mEnvironment.systemClockMillis()=1626707861336
  mEnvironment.systemClockUpdateThresholdMillis()=2000
  mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
  mEnvironment.autoOriginPriorities()=[network,telephony]
  Time change log:
    ...
  Telephony suggestion history:
    ...
  Network suggestion history:
    ...
  Gnss suggestion history:
    ...
  External suggestion history:
    ...

ข้อมูลสามารถตีความได้ดังนี้:

สำคัญ ค่า
mEnvironment.isAutoTimeDetectionEnabled() เปิดใช้งานการตรวจจับเวลาอัตโนมัติหรือไม่
mEnvironment.autoTimeLowerBound() ขอบเขตล่างปัจจุบันใช้ในการตรวจสอบคำแนะนำเวลา
mEnvironment.autoOriginPriorities() ต้นกำเนิดที่ใช้งานและลำดับความสำคัญ

บันทึกการเปลี่ยนแปลงเวลาระบุถึงโอกาสที่บริการ time_detector เปลี่ยนเวลายุค Unix ปัจจุบันของอุปกรณ์

ข้อมูลประวัติข้อเสนอแนะจะระบุว่าแต่ละแหล่งให้คำแนะนำอะไรบ้าง

การตรวจจับโซนเวลาอัตโนมัติ

ส่วนนี้จะแสดงภาพรวมของบริการ time_zone_detector ที่จัดการการตรวจจับโซนเวลาอัตโนมัติ การควบคุมผู้ใช้ในการตั้งค่า การตรวจจับโซนเวลาของโทรศัพท์และตำแหน่ง และรายละเอียดการทดสอบ

บริการ time_zone_detector

บริการ time_zone_detector ซึ่งมีอยู่ในอุปกรณ์ที่ใช้ Android 11 ขึ้นไป จะจัดการการตรวจจับโซนเวลาอัตโนมัติ โดยจะปรับโซนเวลาปัจจุบันของอุปกรณ์ตามความจำเป็นเมื่อเปิดใช้งานการตรวจจับโซนเวลาอัตโนมัติ

เมื่อเปิดใช้งานการตรวจจับเขตเวลาอัตโนมัติ time_zone_detector สามารถอยู่ในสถานะใดสถานะหนึ่งจากสองสถานะ: ไม่แน่นอน และ แน่นอน

เมื่อบริการ time_zone_detector อยู่ในสถานะที่กำหนด หมายความว่าบริการ time_zone_detector ได้รับข้อมูลโซนเวลาที่คาดเดายาก ซึ่งอาจทำให้แทนที่โซนเวลาปัจจุบันได้ เมื่อไม่แน่นอน หมายความว่าไม่ได้รับข้อมูลหรือเฉพาะข้อมูลที่มีความเชื่อมั่นต่ำ ซึ่งหมายความว่าจะไม่แทนที่เขตเวลาปัจจุบัน

สถานะบางอย่างของบริการ time_zone_detector อาจรวมถึงสถานะที่ time_zone_detector ไม่มีข้อมูลโซนเวลาที่จะใช้ หรือสถานะที่มีหลายโซนเวลาให้เลือก รัฐเหล่านี้มีดังนี้:

  • รัฐหนึ่งที่มีเขตเวลาเป็นศูนย์จะถูกป้อนเมื่ออุปกรณ์อยู่ในสถานที่ที่ไม่มีเขตเวลา เช่น ในน่านน้ำสากลหรือในพื้นที่ที่มีข้อพิพาท สถานะนี้คล้ายกับสถานะที่ไม่แน่นอน แต่บ่งชี้ว่า time_zone_detector ไม่จำเป็นต้องดำเนินการเพิ่มเติมเพื่อพยายามระบุเขตเวลา
  • มีการป้อนรัฐหนึ่งที่มีหลายเขตเวลาซึ่งมีเงื่อนไขที่คลุมเครือหรือเขตแดน ในสถานะนี้ หากเขตเวลาปัจจุบันเป็นหนึ่งในโซนเวลา time_zone_detector กำหนด เขตเวลาปัจจุบันจะคงไว้เหมือนเดิม มิฉะนั้น จะใช้โซนเวลาที่มีอยู่อย่างใดอย่างหนึ่ง สิ่งนี้ทำให้ time_zone_detector มีองค์ประกอบที่เหนียวแน่น หากผู้ใช้เลือกเขตเวลาด้วยตนเองก่อนหน้านี้หรือเมื่ออุปกรณ์เข้าใกล้ชายแดน

สถานะที่แน่นอนหรือความไม่แน่นอนของบริการ time_zone_detector ถูกกำหนดโดย คำแนะนำเขตเวลา ที่ส่งโดย อัลกอริทึม

โดยทั่วไป คำแนะนำจะมีสองประเภทที่ใกล้เคียงกันกับสถานะที่เป็นไปได้ของ time_zone_detector อย่างใกล้ชิด : some และ ไม่แน่ใจ ต่อไปนี้เป็นตัวอย่างของประเภทข้อเสนอแนะ:

  • ประเภท = uncertain , zoneIds = []

    • อัลกอริทึมไม่ทราบว่าเขตเวลาคืออะไร
  • ประเภท = certain , zoneIds = ["Europe/London"]

    • อัลกอริธึมแน่ใจว่าโซนคือยุโรป/ลอนดอน
  • ประเภท = certain , zoneIds = [] `

    • อัลกอริทึมนั้นแน่นอน แต่ไม่มีรหัสโซนที่เชื่อมโยงกับตำแหน่งปัจจุบัน
  • type = certain , zoneIds = ["America/Denver", "America/Phoenix"]

    • อัลกอริธึมมั่นใจว่าคำตอบเป็นหนึ่งในสองโซน แต่ไม่สามารถเลือกระหว่าง "อเมริกา/เดนเวอร์" และ "อเมริกา/ฟีนิกซ์" ได้

บริการ time_zone_detector จะถือว่าลำดับของคำแนะนำมีความแตกต่างกันตามอัลกอริทึม คำแนะนำอาจมีข้อมูลเมตาที่บ่งชี้ว่าอัลกอริทึมมีความแน่นอนเพียงใด ทั้งนี้ขึ้นอยู่กับอัลกอริทึม

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

Android รองรับสองอัลกอริธึมสำหรับการตรวจจับโซนเวลา:

  • โทรศัพท์
  • ที่ตั้ง

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

สำหรับรายละเอียดเกี่ยวกับสถานการณ์ที่ใช้หลายอัลกอริธึมเพื่อกำหนดเขตเวลา โปรดดูที่ โหมดสำรองระบบโทรศัพท์

โหมดสำรองระบบโทรศัพท์

ในอุปกรณ์ที่ใช้ Android 13 ขึ้นไป บริการ time_zone_detector รองรับ โหมดสำรองระบบโทรศัพท์ โหมดนี้ช่วยให้ Android ใช้คำแนะนำการตรวจจับโทรศัพท์ชั่วคราวในสถานการณ์ที่การตรวจจับตำแหน่งไม่สามารถตรวจจับโซนเวลาได้ หรือในกรณีที่การตรวจจับตำแหน่งใช้เวลาในการตรวจจับโซนเวลานานกว่าการตรวจจับโทรศัพท์

โหมดสำรองระบบโทรศัพท์ใช้กับอุปกรณ์ที่รองรับทั้งระบบโทรศัพท์และการตรวจจับตำแหน่ง และสถานที่ที่ผู้ใช้เปิดใช้งาน ใช้ตำแหน่งเพื่อตั้งค่าโซนเวลา ใน การตั้งค่าโซนเวลา โหมดนี้จะเปิดใช้งานโดยอัตโนมัติเมื่ออุปกรณ์รีบูต และเมื่อปิดใช้งานโหมดเครื่องบิน

ใน Android 14 ขึ้นไป ระบบโทรศัพท์สำรองสามารถทริกเกอร์ได้ผ่าน API การรายงานสถานะ LTZP กล่าวคือ หาก LTZP รายงานว่ามีความไม่แน่นอน และ ความสามารถในการตรวจจับตำแหน่งหรือเขตเวลาลดระดับลงตามสภาพแวดล้อม โหมดสำรองโทรศัพท์จะถูกทริกเกอร์

เมื่ออยู่ในโหมดสำรองระบบโทรศัพท์ time_zone_detector จะใช้คำแนะนำระบบโทรศัพท์เหมือนกับว่าการตรวจหาตำแหน่งถูกปิดใช้งาน จนกว่า อัลกอริทึมตำแหน่งจะให้คำแนะนำบางอย่าง หลังจากได้รับคำแนะนำบางอย่างแล้ว โหมดสำรองระบบโทรศัพท์จะถูกปิดใช้งาน และข้อเสนอแนะตำแหน่งจะถูกใช้โดยเฉพาะ

สำหรับรายละเอียดการกำหนดค่าสำหรับโหมดสำรองระบบโทรศัพท์ โปรดดู การกำหนดค่าการตรวจจับโซนเวลา

การตั้งค่าเขตเวลา

ผู้ใช้สามารถเปิดใช้งานและกำหนดการตั้งค่าสำหรับการตรวจหาโซนเวลาอัตโนมัติในแอปการตั้งค่า AOSP

การตรวจจับโซนเวลาอัตโนมัติในการตั้งค่า

รูปที่ 2 การตรวจจับโซนเวลาอัตโนมัติในการตั้งค่า

ตารางต่อไปนี้อธิบายการควบคุมผู้ใช้สำหรับการตรวจหาโซนเวลาในแอปการตั้งค่า AOSP

*ใน Android 11 และต่ำกว่า การตั้งค่านี้มีป้ายกำกับ ว่าใช้เขตเวลาที่กำหนดโดยเครือข่าย

ตำแหน่งการตั้งค่า AOSP ชื่อการตั้งค่า AOSP ขอบเขต พฤติกรรม
ระบบ > วันที่และเวลา ตั้งค่าเขตเวลาอัตโนมัติ* ผู้ใช้ทั้งหมด

สลับ

เมื่อ เปิด อุปกรณ์จะรับผิดชอบในการตรวจจับเขตเวลาปัจจุบัน เมื่อ ปิด ผู้ใช้จะได้รับการควบคุมเพื่อตั้งค่าเขตเวลาของอุปกรณ์ด้วยตนเอง

ระบบ > วันที่และเวลา ใช้ตำแหน่ง เพื่อกำหนดเขตเวลา ผู้ใช้ปัจจุบัน

สลับ

ใช้งานได้ตั้งแต่ Android 12 การสลับนี้จะแสดงเฉพาะเมื่ออุปกรณ์รองรับการตรวจหาโซนเวลาของตำแหน่งเท่านั้น

สำหรับการเปลี่ยนแปลงที่นำมาใช้ในข้อ 14 โปรดดู อุปกรณ์ที่รองรับเฉพาะการตรวจจับโซนเวลาของตำแหน่ง

ที่ตั้ง ใช้สถานที่ ผู้ใช้ปัจจุบัน

สลับ

อนุญาตหรือป้องกันการใช้ตำแหน่งของอุปกรณ์โดยทั่วไป ค่าจะเกี่ยวข้องหากอุปกรณ์รองรับการตรวจจับโซนเวลาของตำแหน่ง

ข้อมูลต่อไปนี้จะแสดงภาพรวมของลักษณะการทำงานของอุปกรณ์สำหรับการตรวจจับโซนเวลาตามการตั้งค่าที่ผู้ใช้เลือก:

  • [วันที่และเวลา] ตั้งค่าโซนเวลาอัตโนมัติ: ปิด

    • ผู้ใช้จะต้องเลือกเขตเวลาด้วยตนเอง
  • [วันที่และเวลา] ตั้งค่าโซนเวลาอัตโนมัติ: เปิด

    • [ตำแหน่ง] ใช้ตำแหน่ง: ปิด

      • สัญญาณโทรศัพท์ใช้เพื่อตรวจจับเขตเวลา
    • [ตำแหน่ง] ใช้ตำแหน่ง: เปิด

      • [วันที่และเวลา] ใช้ตำแหน่งเพื่อตั้งค่าเขตเวลา: เปิด

        • ตำแหน่งใช้เพื่อตรวจจับเขตเวลา
      • [วันที่และเวลา] ใช้ตำแหน่งเพื่อตั้งค่าเขตเวลา: ปิด

        • สัญญาณโทรศัพท์ใช้เพื่อตรวจจับเขตเวลา

อุปกรณ์ผู้ใช้หลายเครื่อง

เนื่องจากการตั้งค่าหลายอย่างที่เกี่ยวข้องกำหนดขอบเขตไว้ที่ผู้ใช้ปัจจุบัน พฤติกรรมการตรวจจับเขตเวลาของอุปกรณ์จึงสามารถเปลี่ยนแปลงได้เมื่อผู้ใช้ปัจจุบันเปลี่ยนแปลงบนอุปกรณ์ Android ที่มีผู้ใช้หลายคน

การสลับใช้ตำแหน่งเพื่อตั้งค่าเขตเวลา นั้นกำหนดขอบเขตไว้ที่ผู้ใช้ปัจจุบันและไม่ถูกจำกัดโดยนโยบายด้านอุปกรณ์ ซึ่งหมายความว่าผู้ใช้สามารถเปลี่ยนค่าได้ตลอดเวลา แม้ว่าการสลับ ตั้งค่าเขตเวลาโดยอัตโนมัติ จะปิดอยู่ หรือหากการควบคุมเวลาหรือโซนเวลาอื่น ถูกจำกัดโดย Device Policy Controller

อุปกรณ์ที่รองรับเฉพาะอัลกอริธึมการตรวจจับโซนเวลาของตำแหน่ง

ส่วนนี้จะอธิบายลักษณะการทำงานของอุปกรณ์ที่รองรับเฉพาะอัลกอริธึมตำแหน่งเท่านั้น

  • Android 14 ขึ้นไป

    • ตัวเลือก ใช้ตำแหน่ง จะไม่แสดงให้ผู้ใช้เห็นในแอปการตั้งค่า AOSP และอุปกรณ์จะทำงานเหมือนกับว่าตัวเลือก ใช้ตำแหน่ง เปิดใช้งานอยู่
    • ค่าของการตั้ง SettingsProvider ที่กำหนดขอบเขตโดยผู้ใช้ location_time_zone_detection_enabled จะถูกละเว้น ค่านี้จะบันทึกการตั้งค่าของผู้ใช้ในอุปกรณ์ประเภทอื่น
  • ระบบปฏิบัติการ Android 12 หรือ Android 13

    • ตัวเลือก ใช้ตำแหน่ง จะปรากฏแก่ผู้ใช้ในแอปการตั้งค่า AOSP และผู้ใช้สามารถปิดใช้งานตัวเลือกนี้ได้ หากปิดใช้งานตัวเลือก อุปกรณ์จะไม่ตรวจจับเขตเวลาโดยอัตโนมัติ

พฤติกรรมเมื่อเปลี่ยนไปและจากการตรวจจับอัตโนมัติ

เมื่อผู้ใช้สลับการตรวจจับเขตเวลาจาก แบบแมนนวล เป็น แบบอัตโนมัติ time_zone_detector อาจระบุเขตเวลาปัจจุบันที่แน่นอนแล้ว หากเป็นเช่นนั้น เนื่องจากผู้ใช้เปิดใช้งานการตรวจจับอัตโนมัติ เขตเวลาของอุปกรณ์อาจมีการเปลี่ยนแปลงในเวลาเดียวกันเพื่อให้ตรงกับความเห็นของบริการ time_zone_detector

ในทำนองเดียวกัน เมื่อผู้ใช้ทำการเปลี่ยนแปลงในการตั้งค่าที่ส่งผลให้เกิดการเปลี่ยนแปลงอัลกอริทึมปัจจุบันของบริการ time_zone_detector time_zone_detector อาจได้รับคำแนะนำสำหรับอัลกอริทึมใหม่แล้ว ดังนั้นเวลาของอุปกรณ์จึงอาจมีการเปลี่ยนแปลงเพื่อให้ตรงกับความคิดเห็นของบริการ time_zone_detector ทันที

การตรวจจับโซนเวลาโทรศัพท์

การตรวจจับโซนเวลาระบบโทรศัพท์ใช้สัญญาณโทรศัพท์เพื่อกำหนดโซนเวลาปัจจุบัน สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การตรวจจับโซนเวลาโทรศัพท์

การตรวจจับโซนเวลาของสถานที่

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

บริการ location_time_zone_manager ซึ่งเปิดตัวใน Android 12 ทำงานในเซิร์ฟเวอร์ระบบและมีโค้ดที่รับผิดชอบในการส่งข้อเสนอแนะอัลกอริทึมตำแหน่งไปยังบริการ time_zone_detector สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การตรวจจับโซนเวลาของตำแหน่ง

ข้อควรพิจารณาในการนำไปใช้งาน

ส่วนนี้อธิบายแง่มุมต่างๆ ของฟีเจอร์การตรวจจับโซนเวลาของตำแหน่ง เพื่อช่วยให้ผู้ผลิตอุปกรณ์พิจารณาว่าจะนำฟีเจอร์ดังกล่าวไปใช้กับอุปกรณ์หรือไม่

การเปรียบเทียบการตรวจจับโทรศัพท์และตำแหน่ง

ตารางต่อไปนี้แสดงการเปรียบเทียบข้อดีและข้อเสียของการใช้ตำแหน่งแทนสัญญาณโทรศัพท์ในการตรวจหาโซนเวลา

การตรวจจับโทรศัพท์ การตรวจจับตำแหน่ง
ความถูกต้อง แตกต่างกันไปในแต่ละประเทศ

ขึ้นอยู่กับความถูกต้องและความพร้อมใช้งานของ MCC, NITZ
ขึ้นอยู่กับการกำหนดค่าคุณลักษณะหรือส่วนประกอบปลั๊กอิน

โดยทั่วไปความถูกต้องจะแตกต่างกันไปตาม:
  • ความแม่นยำและความสม่ำเสมอของผู้ให้บริการตำแหน่ง
  • คุณภาพของข้อมูลแผนที่โซนเวลา
ความสามารถในการอัปเดต การตรวจจับระบบโทรศัพท์อาศัยไฟล์ที่อยู่ใน โมดูลข้อมูลโซนเวลา ที่อัปเดตได้ (com.android.tzdata APEX) ขึ้นอยู่กับการกำหนดค่าคุณลักษณะหรือส่วนประกอบปลั๊กอิน

โดยทั่วไปความสามารถในการอัปเดตจะขึ้นอยู่กับว่าอุปกรณ์ใช้ข้อมูลแผนที่โซนเวลาของเซิร์ฟเวอร์หรือไคลเอนต์

หมายเหตุ: ข้อมูลแผนที่โซนเวลาไม่มีอยู่ใน โมดูลข้อมูลโซนเวลา ที่ใช้ในการอัปเดตสำเนา TZDB ของ Android และข้อมูลโซนเวลาอื่น ๆ

ผู้ผลิตอุปกรณ์ยังต้องพิจารณาความสอดคล้องของเวอร์ชันระหว่างกฎโซนเวลาและข้อมูลแผนที่โซนเวลาด้วย
การใช้พลังงาน ไม่มีหรือใช้พลังงานต่ำ ขึ้นอยู่กับการตั้งค่าตำแหน่งของผู้ใช้ ปลั๊กอินที่ใช้ และโดยทั่วไปแล้วแอปอื่นๆ ร้องขอตำแหน่ง
ความพร้อมใช้งาน อุปกรณ์โทรศัพท์เท่านั้น โดยปกติแล้วจะต้องมีซิมที่ใช้งานได้ การตรวจหาตำแหน่งขึ้นอยู่กับผู้ให้บริการตำแหน่งที่มีอยู่
ความเป็นส่วนตัวของผู้ใช้

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

โดยเฉพาะอย่างยิ่ง การตรวจจับเขตเวลาสามารถทำงานได้ผ่านวิธีการแบบพาสซีฟหรือแบบแอคทีฟ:

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

การตรวจจับแบบพาสซีฟ เช่น อัลกอริธึมระบบโทรศัพท์ ไม่มีผลกระทบต่อความเป็นส่วนตัวเพิ่มเติมสำหรับผู้ใช้

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

แนวทางของ Android ในด้านความเป็นส่วนตัวของผู้ใช้สำหรับการตรวจจับโซนเวลาทำให้ผู้ใช้สามารถปิดใช้งานอัลกอริธึมที่คาดว่าจะเปิดใช้งานทีละรายการได้ นอกจากนี้ โค้ดแพลตฟอร์ม AOSP ไม่ได้เกี่ยวข้องโดยตรงกับตำแหน่งของตัวเอง: การตรวจหาตำแหน่งและการจับคู่ตำแหน่งกับรหัสโซนเวลาจะเหลือให้กับส่วนประกอบปลั๊กอินที่กำหนดค่าโดยผู้ผลิตอุปกรณ์

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

การกำหนดค่า

ผู้ผลิตอุปกรณ์สามารถกำหนดค่าบริการ time_zone_detector เพื่อเปลี่ยนลักษณะการทำงานได้ ส่วนนี้อธิบายตัวเลือกการกำหนดค่าสำหรับลักษณะการทำงานทั่วไปของบริการ time_zone_detector สำหรับรายละเอียดการกำหนดค่าสำหรับอัลกอริธึมการตรวจจับโทรศัพท์และโซนเวลา โปรดดู การตรวจจับโซนเวลาของระบบโทรศัพท์ และ การตรวจจับโซนเวลาของตำแหน่ง

คอนฟิกูเรชัน AOSP พื้นฐานอยู่ที่ frameworks/base/core/res/res/values/config.xml

คีย์การกำหนดค่า ค่า AOSP คำอธิบาย
config_supportTelephonyTimeZoneFallback true เมื่อ true time_zone_detector จะใช้โหมดสำรองระบบโทรศัพท์ ใช้งานได้กับ Android 13 ขึ้นไป

การเปลี่ยนแปลงพฤติกรรมเริ่มต้นของอุปกรณ์

ใน AOSP การตรวจหาเขตเวลาอัตโนมัติจะเปิดใช้งานตามค่าเริ่มต้นด้วยการตั้งค่า auto_time_zone ที่ตั้งค่าเป็น true หากต้องการปิดใช้งานการตรวจจับเวลาอัตโนมัติตามดีฟอลต์ ให้ตั้งค่า def_auto_time_zone ที่กำหนดใน frameworks/base/packages/SettingsProvider/res/values/defaults.xml เป็น false

เมื่อกู้คืนข้อมูลสำรองจากอุปกรณ์อื่น เฟรมเวิร์กจะอัปเดตค่าของการตั้งค่า auto_time_zone ตามค่าเริ่มต้น หากคุณต้องการให้แน่ใจว่าการตั้งค่านี้จะไม่ถูกกู้คืนจากการสำรองข้อมูล ให้รวม auto_time_zone ในอาร์เรย์ restore_blocked_global_settings ที่กำหนดใน frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml

การดีบักและการทดสอบโซนเวลา

ส่วนนี้ให้ข้อมูลเกี่ยวกับวิธีการดีบักและทดสอบพฤติกรรมของบริการ time_zone_detector และส่วนประกอบอื่นๆ ที่อัลกอริธึมทั้งหมดใช้ร่วมกัน

การกำหนดค่าอุปกรณ์โดยใช้บริการ device_config

บริการ device_config เป็นกลไกที่ใช้บน Android เพื่อกำหนดค่าลักษณะการทำงานที่ปรับเปลี่ยนได้โดยใช้ค่าที่โดยทั่วไปจะดึงมาจากเซิร์ฟเวอร์ระยะไกลด้วยโค้ดที่เป็นกรรมสิทธิ์ (ไม่ใช่ AOSP) เมื่อใช้ค่า device_config สำหรับการทดสอบ โดยเฉพาะอย่างยิ่งในระหว่างการทดสอบด้วยตนเองที่รันเป็นเวลานาน อุปกรณ์อาจซิงโครไนซ์แฟล็ก ซึ่งจะรีเซ็ตแฟล็กและล้างค่าที่ตั้งไว้สำหรับการทดสอบ

ใน Android 12 หรือสูงกว่า เพื่อป้องกันการซิงโครไนซ์แฟล็กชั่วคราว ให้ใช้:

adb shell cmd device_config set_sync_disabled_for_tests persistent

หากต้องการคืนค่าการซิงโครไนซ์แฟล็กหลังการทดสอบ ให้ใช้:

adb shell cmd device_config set_sync_disabled_for_tests none

หลังจากกู้คืนการซิงโครไนซ์แฟล็กแล้ว ให้รีบูทอุปกรณ์

สำหรับข้อมูลเพิ่มเติม ให้ใช้ $ adb shell cmd device_config help

การโต้ตอบกับบริการ time_zone_detector

หากต้องการดูการกำหนดค่า time_zone_detector และสถานะของบริการ time_zone_detector ให้ใช้:

adb shell cmd time_zone_detector dump

หากต้องการดูคำสั่งเพิ่มเติมสำหรับการดีบักและทดสอบการตรวจหาโซนเวลา ให้ใช้:

adb shell cmd time_zone_detector help

ผลลัพธ์วิธีใช้ยังอธิบายคุณสมบัติของบริการ device_config ที่สามารถใช้เพื่อส่งผลต่อพฤติกรรมของบริการ time_zone_detector สำหรับการทดสอบหรือในการใช้งานจริง สำหรับรายละเอียด โปรดดู การกำหนดค่าอุปกรณ์โดยใช้บริการ device_config

ในการตรวจสอบการตรวจจับเขตเวลา ผู้ทดสอบต้องทราบว่าอัลกอริทึมที่ time_zone_detector ใช้อยู่คืออะไร หากต้องการทำความเข้าใจและมีอิทธิพลต่ออัลกอริทึมปัจจุบันของ time_zone_detector ให้ใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้:

  • ตรวจสอบด้วยสายตาผ่าน UI การตั้งค่า สำหรับข้อมูลเพิ่มเติม โปรดดู การตั้งค่าโซนเวลา
  • ใช้บรรทัดคำสั่งผ่าน adb:

    • หากต้องการดัมพ์สถานะ time_zone_detector ให้ใช้ adb shell cmd time_zone_detector dump
    • หากต้องการเปลี่ยนการตั้งค่าอุปกรณ์ ให้ใช้คำสั่ง time_zone_detector อื่น สำหรับข้อมูลเพิ่มเติม ให้ใช้ adb shell cmd time_zone_detector help

ต่อไปนี้เป็นตัวอย่างของเอาต์พุตจากคำสั่ง adb shell cmd time_zone_detector dump โดยมีข้อมูลเกี่ยวกับอัลกอริทึมปัจจุบันและสถานะบริการเป็นตัวหนา:

$ adb shell cmd time_zone_detector dump
TimeZoneDetectorStrategy:
  mEnvironment.getCurrentUserId()=0
  mEnvironment.getConfiguration(currentUserId)=ConfigurationInternal{mUserId=0, mUserConfigAllowed=true, mTelephonyDetectionSupported=true, mGeoDetectionSupported=true, mAutoDetectionEnabled=true, mLocationEnabled=true, mGeoDetectionEnabled=true}
  [Capabilities=TimeZoneCapabilitiesAndConfig{mCapabilities=TimeZoneDetectorCapabilities{mUserHandle=UserHandle{0}, mConfigureAutoDetectionEnabledCapability=40, mConfigureGeoDetectionEnabledCapability=40, mSuggestManualTimeZoneCapability=30}, mConfiguration=TimeZoneConfiguration{mBundle=Bundle[{geoDetectionEnabled=true, autoDetectionEnabled=true}]}}]
  mEnvironment.isDeviceTimeZoneInitialized()=true
  mEnvironment.getDeviceTimeZone()=Europe/London
  Time zone change log:
  Manual suggestion history:
...
  Geolocation suggestion history:
...
  Telephony suggestion history:
...

ข้อมูลสามารถตีความได้ดังนี้:

สำคัญ ค่า
mUserConfigAllowed ไม่ว่าผู้ใช้จะถูกป้องกันไม่ให้ควบคุมการตั้งค่าวันที่และเวลาโดย Device Policy Controller หรือไม่
mTelephonyDetectionSupported ไม่ว่าอุปกรณ์จะมีการตรวจจับโซนเวลาของโทรศัพท์หรือไม่
mGeoDetectionSupported อุปกรณ์รองรับการตรวจจับโซนเวลาของตำแหน่งหรือไม่ นี่คือสถานะ ที่มีผล ตามการกำหนดค่า และ การมีอยู่ของ LTZP อย่างน้อยหนึ่งรายการ
mAutoDetectionEnabled เปิดใช้งานการตรวจหาโซนเวลาอัตโนมัติหรือไม่
mLocationEnabled สลับตำแหน่งหลัก
mGeoDetectionEnabled สวิตช์อัลกอริธึม: false หมายถึงอัลกอริธึมระบบโทรศัพท์ และ true หมายถึงอัลกอริธึมตำแหน่ง

ข้อมูลประวัติข้อเสนอแนะจะระบุว่ามีข้อเสนอแนะอะไรบ้างผ่านการตั้งค่า (ด้วยตนเอง) และโดยอัลกอริธึมระบบโทรศัพท์และตำแหน่ง