ภาพรวมเวลา

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

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

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

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

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

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

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

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

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

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

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

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

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

บริการ time_detector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การกำหนดค่า

ผู้ผลิตอุปกรณ์สามารถกำหนดค่าบริการ 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 บิต เฟรมเวิร์กจะกำหนดเวลาสูงสุดเพื่อป้องกันไม่ให้อุปกรณ์ใช้การแนะนำเวลาที่อาจทำให้เกิดปัญหาปี 2038

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 Epoch ปัจจุบันของอุปกรณ์

ข้อมูลประวัติคําแนะนําจะระบุคําแนะนําที่สร้างขึ้นโดยต้นทางแต่ละแห่ง

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

ส่วนนี้จะกล่าวถึงภาพรวมของบริการ 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 จะกำหนดโดยการแนะนำเขตเวลาที่ส่งโดยอัลกอริทึม

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

  • type = uncertain, zoneIds = []

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

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

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

    • อัลกอริทึมมั่นใจว่าคำตอบคือโซนใดโซนหนึ่งจาก 2 โซน แต่เลือกระหว่าง "America/Denver" กับ "America/Phoenix" ไม่ได้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ดูการเปลี่ยนแปลงที่เปิดตัวใน Android 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 ในการทดสอบ โดยเฉพาะในระหว่างการทดสอบด้วยตนเองที่ใช้เวลานาน อุปกรณ์อาจซิงค์ Flag ซึ่งจะรีเซ็ต Flag และล้างค่าที่กำหนดไว้สำหรับการทดสอบ

ใน 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 ระบุอัลกอริทึมตำแหน่ง

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