หน้านี้อธิบายวิธีการทำงานของการตรวจหาเวลาและเขตเวลาใน Android ซึ่งรวมถึงวิธีที่ Android ตรวจหาเวลาและเขตเวลาโดยอัตโนมัติ ตัวเลือกการกำหนดค่าสำหรับผู้ผลิตอุปกรณ์ และข้อมูลการทดสอบ
ภาพรวมของเวลาและเขตเวลา
Android จะติดตามสถานะ 2 สถานะที่เชื่อมโยงกันแต่แยกกัน ดังนี้ เพื่อระบุเวลาท้องถิ่นของผู้ใช้ที่จะแสดงในตำแหน่งต่างๆ เช่น แถบสถานะ
- เวลา Unix Epoch ปัจจุบัน
- เขตเวลาปัจจุบัน
เวลาเริ่มต้นของยุค Unix ปัจจุบันและเขตเวลาปัจจุบันเป็นสถานะระดับอุปกรณ์ ซึ่งหมายความว่าผู้ใช้ทุกคนของอุปกรณ์จะแชร์สถานะเหล่านี้
เวลา Unix Epoch ปัจจุบันไม่ใช่ค่าคงที่ โดยระบบจะอัปเดตโดยอัตโนมัติเพื่อแสดงถึงช่วงเวลา นอกเหนือจากเวลาปกติ สัญญาณปัจจุบัน ระบบจะปรับเวลา Unix Epoch ของอุปกรณ์ หากพบว่าไม่ถูกต้อง เช่น หลังจากที่อุปกรณ์ไม่มีกระแสไฟเข้า
เขตเวลาปัจจุบันจะเป็นตัวกำหนดการปรับที่จะทำเพื่อแปลงเวลา Unix Epoch ปัจจุบันเป็นเวลาท้องถิ่น เช่น ในช่วงฤดูร้อนในลอสแอนเจลิส อุปกรณ์จะหักเวลา 7 ชั่วโมงออกจากเวลา Unix Epoch ปัจจุบัน และในช่วงฤดูหนาวจะหักเวลา 8 ชั่วโมง
อุปกรณ์ Android ทุกเครื่องมีฐานข้อมูลกฎเขตเวลาทั่วโลกทั้งหมดเพื่อรองรับการคำนวณเวลาท้องถิ่นเหล่านี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับกฎเขตเวลาได้ที่หัวข้อกฎเขตเวลา
เมื่อผู้ใช้เดินทางไปยังสถานที่ใหม่ที่ใช้เขตเวลาอื่น ไม่จำเป็นต้องปรับเวลา Unix Epoch ปัจจุบัน แต่โดยทั่วไปผู้ใช้ต้องการดูเวลาท้องถิ่นมากกว่าเวลาในสถานที่ก่อนหน้า กำลังเปลี่ยน เขตเวลาปัจจุบันช่วยให้มั่นใจได้ว่ามีการใช้ออฟเซ็ตที่ถูกต้องกับช่วงเวลาปัจจุบัน เวลา Unix Epoch เพื่อแสดงเวลาท้องถิ่นที่ถูกต้องสำหรับตำแหน่งใหม่
AOSP ช่วยให้ผู้ใช้ควบคุมได้ว่าจะให้เขตเวลาและเขตเวลา การตั้งค่าให้โดยอัตโนมัติผ่านกลไกต่อไปนี้
- การตรวจหาเวลาอัตโนมัติ: ตรวจสอบว่าอุปกรณ์ระบุเวลาที่ถูกต้อง เวลา Unix Epoch ปัจจุบัน
- การตรวจหาเขตเวลาอัตโนมัติ: ตรวจสอบว่าอุปกรณ์มีเขตเวลาปัจจุบันที่ถูกต้อง
การตรวจหาเวลาอัตโนมัติ
ส่วนนี้จะแสดงภาพรวมของบริการ time_detector
ที่จัดการการตรวจจับเวลาอัตโนมัติ การควบคุมของผู้ใช้ ตัวเลือกการกำหนดค่า และรายละเอียดการทดสอบ
บริการ time_detector
บริการ time_detector
ที่พร้อมให้บริการในอุปกรณ์ที่ใช้ Android 10 ขึ้นไปจะจัดการการตรวจจับเวลาโดยอัตโนมัติ ปรับเวลา Epoch ของ Unix ปัจจุบันของอุปกรณ์ตามความจำเป็นเมื่อ
การตรวจหาเวลาอัตโนมัติเปิดใช้งานอยู่
บริการ 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 อย่างนี้ต้องใช้ความรู้ว่าเกิดการก้าวกระโดดขึ้นเมื่อใดและ วิธีที่ต้นทางจัดการ
- ต้นทางอาจพร้อมให้บริการในบางช่วงเวลาหรือในบางกรณีเท่านั้น สถานการณ์ เช่น หากต้นทางต้องมีการเชื่อมต่อเครือข่าย อาจใช้งานได้เฉพาะเมื่ออุปกรณ์เชื่อมต่ออินเทอร์เน็ตเท่านั้น
- ต้นทางอาจไม่ถูกต้อง ไม่แน่ชัด หรือมีข้อผิดพลาด สำหรับ ตัวอย่างเช่น หากเสาสัญญาณโทรศัพท์ไม่ติดตาม "เวลาสากล" ต้นทางของโทรศัพท์อาจให้คำแนะนำเวลาที่ไม่ถูกต้อง
- อาจมีความคลาดเคลื่อนเกิดขึ้นขณะรับเวลา Unix Epoch ตัวอย่างเช่น ความล่าช้าของเครือข่าย การบัฟเฟอร์ หรือการกำหนดเวลากระบวนการอาจทำให้เกิด เวลา Unix Epoch ให้ไม่ถูกต้อง
- นาฬิกาอ้างอิงที่ใช้ปรับคําแนะนําสําหรับเวลาที่ผ่านไปนับตั้งแต่ได้รับคําแนะนําอาจไม่ถูกต้อง
ต้นทางการตรวจจับเวลาหลัก 2 รายการที่กําหนดค่าไว้ให้ใช้งานโดยค่าเริ่มต้นใน AOSP มีดังนี้
- เครือข่าย: ใช้เครือข่าย เซิร์ฟเวอร์เวลาโปรโตคอลเวลา (NTP)
- โทรศัพท์: ใช้สัญญาณโทรศัพท์สำหรับระบุตัวตนเครือข่ายและเขตเวลา (NITZ)
ทั้งต้นทางโทรศัพท์และเครือข่ายจำเป็นต้องเชื่อมต่อกับเครือข่ายภายนอก ซึ่งอาจไม่พร้อมใช้งานเสมอไป
ตั้งแต่ Android 12 เป็นต้นไป Android ยังรองรับ ต้นทางต่อไปนี้ ซึ่งไม่ได้กําหนดค่าไว้ให้ใช้โดยค่าเริ่มต้น
- GNSS: ใช้ผู้ให้บริการตำแหน่ง GPS เพื่อรับเวลาจากแหล่งที่มาของ GNSS
- ภายนอก: ทั่วไป ซึ่งอนุญาตให้ผู้ผลิตอุปกรณ์ผสานรวมแหล่งข้อมูล เวลา Unix Epoch
การตั้งค่าเวลา
ผู้ใช้สามารถเปิดใช้การตรวจหาเวลาอัตโนมัติได้ในระบบ > วันที่และเวลาในแอปการตั้งค่า 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 บิต โดยเฟรมเวิร์กจะกำหนดช่วงเวลาสูงสุดเพื่อป้องกันอุปกรณ์
ไม่ให้ใช้คำแนะนำเวลาที่อาจทำให้เกิดปัญหา Y2038
Android 12 เปิดตัวกรอบเวลาที่ต่ำลง
ตรวจสอบเวลาที่แนะนำซึ่งบริการ time_detector
ได้รับ ยิ่งน้อย
ค่าขอบเขตเวลาที่ใช้สำหรับคำแนะนำอัตโนมัติตั้งค่าจากการประทับเวลาของบิลด์
ซึ่งทำงานตามหลักการที่ว่าเวลาที่ถูกต้องต้องอยู่หลังการสร้างอิมเมจระบบของอุปกรณ์ หากเวลาที่แนะนำอยู่ก่อนช่วงเวลาต่ำสุด ค่า
บริการ time_detector
ทิ้งคำแนะนำเนื่องจากจะใช้งานไม่ได้หาก
การประทับเวลาของบิลด์ถูกต้อง
สําหรับอุปกรณ์ที่ใช้ Android 11 หรือต่ำกว่า บริการ time_detector
จะไม่ตรวจสอบความถูกต้องของคําแนะนําเวลายุค Unix ที่เข้ามา
การแก้ไขข้อบกพร่องและการทดสอบเวลา
ส่วนนี้ให้ข้อมูลเกี่ยวกับวิธีแก้ไขข้อบกพร่องและทดสอบลักษณะการทำงานของ
บริการ 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
ไม่มีข้อมูลเขตเวลาที่จะใช้ หรือที่ที่มี
เขตเวลาต่างๆ ได้ให้เลือกหลากหลาย รัฐเหล่านี้มีดังต่อไปนี้
- ระบบจะป้อนรัฐที่ไม่มีเขตเวลาเมื่ออุปกรณ์อยู่ในพื้นที่ที่ไม่มีเขตเวลา เช่น ในน่านน้ำระหว่างประเทศหรือในพื้นที่พิพาท สถานะนี้คล้ายกับสถานะไม่แน่นอน แต่บ่งชี้ว่า
time_zone_detector
ไม่ต้องดําเนินการใดๆ เพิ่มเติมเพื่อพยายามระบุเขตเวลา - มีการป้อนรัฐที่มีเขตเวลาหลายเขตซึ่งมีความคลุมเครือหรือเงื่อนไขที่เป็นพรมแดน ในกรณีนี้ หากเขตเวลาปัจจุบันเป็นหนึ่งในเขตเวลาที่
time_zone_detector
มั่นใจ ระบบจะคงเขตเวลาปัจจุบันไว้ตามเดิม ไม่เช่นนั้น ระบบจะใช้เขตเวลาใดเขตเวลาหนึ่งที่มีอยู่ ซึ่งช่วยให้time_zone_detector
มีองค์ประกอบของการคงสถานะไว้หากผู้ใช้เลือกเขตเวลาด้วยตนเองก่อนหน้านี้หรือเมื่ออุปกรณ์เข้าใกล้พรมแดน
สถานะที่แน่นอนหรือไม่แน่นอนของบริการ time_zone_detector
จะกำหนดโดยการแนะนำเขตเวลาที่ส่งโดยอัลกอริทึม
โดยทั่วไปแล้ว คำแนะนำจะมีอยู่ 2 ประเภทซึ่งใกล้เคียงกับสถานะที่เป็นไปได้
ของ time_zone_detector
: แน่นอนและไม่แน่นอน รายการต่อไปนี้คือ
ตัวอย่างประเภทคำแนะนำ
ประเภท =
uncertain
,zoneIds = []
- อัลกอริทึมไม่ทราบเขตเวลา
ประเภท =
certain
,zoneIds = ["Europe/London"]
- อัลกอริทึมมั่นใจว่าเขตเวลาคือยุโรป/ลอนดอน
ประเภท =
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
ทันที
การตรวจหาเขตเวลาของโทรศัพท์
การตรวจหาเขตเวลาทางโทรศัพท์จะใช้สัญญาณโทรศัพท์เพื่อระบุเขตเวลาปัจจุบัน สำหรับข้อมูลเพิ่มเติม โปรดดู เขตเวลาของโทรศัพท์ การตรวจจับ
การตรวจหาเขตเวลาของสถานที่
การตรวจหาเขตเวลาของตำแหน่งพร้อมให้บริการใน 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 ระบุอัลกอริทึมตำแหน่ง |
ข้อมูลประวัติคำแนะนำจะแสดงคำแนะนำที่มีผู้เสนอ ผ่านการตั้งค่า (ด้วยตนเอง) รวมถึงอัลกอริทึมโทรศัพท์และตำแหน่ง