หน้านี้อธิบายวิธีการตรวจหาเวลาและเขตเวลาใน 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 ระบุอัลกอริทึมตำแหน่ง |
ข้อมูลประวัติคำแนะนำจะระบุคำแนะนำที่ได้รับผ่านการตั้งค่า (ด้วยตนเอง) รวมถึงจากอัลกอริทึมการโทรและตำแหน่ง