ภาพรวมเวลา

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

ภาพรวมของเวลาและเขตเวลา

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

  • เวลา Unix Epoch ปัจจุบัน
  • เขตเวลาปัจจุบัน

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

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

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

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

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

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

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

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

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

บริการ time_detector

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

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

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

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

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

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

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

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

ต้นทางของการตรวจจับเวลาหลักที่กำหนดค่าไว้สำหรับการใช้งานโดยค่าเริ่มต้นใน AOSP มีอยู่ 2 รายการดังนี้

  • เครือข่าย: ใช้เซิร์ฟเวอร์เวลา โปรโตคอลเวลาของเครือข่าย (NTP)
  • โทรศัพท์: ใช้สัญญาณโทรศัพท์ ของเครือข่ายระบุตัวตนและเขตเวลา (NITZ)

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

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

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

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

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

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

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

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

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

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

ปุ่มเปิด/ปิด

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

เมื่อผู้ใช้ป้อนเวลาด้วยตนเอง ก็จะป้อนเวลาท้องถิ่น ไม่ใช่เวลา Unix Epoch เวลา Unix Epoch ปัจจุบันจะคำนวณโดยใช้เขตเวลาปัจจุบันในการรับเวลา Epoch ของ 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 หรือต่ำกว่าได้ ซึ่งโทรศัพท์จะมีลำดับความสำคัญสูงกว่า

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

ค่าต้นทางที่อนุญาตมีดังนี้

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

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

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

สำหรับอุปกรณ์ที่ใช้ Android 11 หรือต่ำกว่า บริการ time_detector จะไม่ตรวจสอบคำแนะนำเวลา Epoch ของ 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 Epoch ปัจจุบันของอุปกรณ์

ข้อมูลประวัติคำแนะนำจะแสดงคำแนะนำที่มาจากต้นทางแต่ละแห่ง

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

ส่วนนี้จะแสดงภาพรวมของบริการ 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 ไม่มีข้อมูลเขตเวลาที่จะใช้ หรือที่มีหลายเขตเวลาให้เลือก รัฐเหล่านี้มีดังต่อไปนี้

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

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

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

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

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

    • อัลกอริทึมจะตรวจสอบว่าโซนเป็นยุโรป/ลอนดอน
  • ประเภท = certain, zoneIds = []`

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

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

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

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

Android รองรับอัลกอริทึม 2 แบบสำหรับการตรวจหาเขตเวลา ดังนี้

  • โทรศัพท์
  • ตำแหน่ง

โดยทั่วไปบริการ 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 ที่มีผู้ใช้หลายคน

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

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

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

  • 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 ขึ้นไป หากต้องการป้องกันการซิงค์ข้อมูล Flag ชั่วคราว ให้ใช้ปุ่มต่อไปนี้

adb shell cmd device_config set_sync_disabled_for_tests persistent

หากต้องการคืนค่าการซิงค์แฟล็กหลังจากการทดสอบ ให้ใช้ปุ่มต่อไปนี้

adb shell cmd device_config set_sync_disabled_for_tests none

หลังจากกู้คืนการซิงค์ข้อมูล Flag ให้รีบูตอุปกรณ์

โปรดดูข้อมูลเพิ่มเติมที่ $ 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 การกำหนดว่าจะให้ผู้ใช้ควบคุมการตั้งค่าวันที่และเวลาโดย เครื่องมือควบคุมนโยบายด้านอุปกรณ์หรือไม่
mTelephonyDetectionSupported ระบุว่าอุปกรณ์มีการตรวจหาเขตเวลาของโทรศัพท์หรือไม่
mGeoDetectionSupported ระบุว่าอุปกรณ์รองรับการตรวจหาเขตเวลาของตำแหน่งหรือไม่ นี่คือสถานะมีผลตามการกำหนดค่าและการแสดง LTZP อย่างน้อย 1 รายการ
mAutoDetectionEnabled การตรวจหาเขตเวลาอัตโนมัติเปิดใช้อยู่
mLocationEnabled สลับตําแหน่งหลัก
mGeoDetectionEnabled การเปลี่ยนอัลกอริทึม: false ระบุอัลกอริทึมโทรศัพท์ และ true จะระบุอัลกอริทึมของตำแหน่ง

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