ภาพรวมเวลา

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

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

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

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

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

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

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

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

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

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

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

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

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

บริการ time_detector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เมื่อ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 อย่างใกล้ชิด ได้แก่ certain และ uncertain ตัวอย่างประเภทคำแนะนำมีดังนี้

  • type = uncertain, zoneIds = []

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

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

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

ใน Android 12 ขึ้นไป หากต้องการป้องกันการซิงค์ฟีเจอร์ชั่วคราว ให้ใช้คำสั่งต่อไปนี้

adb shell cmd device_config set_sync_disabled_for_tests persistent

หากต้องการกู้คืนการซิงค์ฟีเจอร์ Flag หลังจากทดสอบ ให้ใช้คำสั่งต่อไปนี้

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สำหรับการทดสอบหรือในเวอร์ชันที่ใช้งานจริงได้ด้วย โปรดดูรายละเอียดที่หัวข้อกำหนดค่าอุปกรณ์โดยใช้ service

หากต้องการตรวจสอบการตรวจหาเขตเวลา ผู้ทดสอบต้องทราบว่า 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 ระบุอัลกอริทึมตำแหน่ง

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