หน้านี้อธิบายวิธีการตรวจหาเวลาและโซนเวลาบน Android ซึ่งรวมถึงวิธีที่ Android ตรวจหาเวลาและเขตเวลาโดยอัตโนมัติ ตัวเลือกการกำหนดค่าสำหรับผู้ผลิตอุปกรณ์ และข้อมูลการทดสอบ
ภาพรวมของเวลาและโซนเวลา
ในการกำหนดเวลาท้องถิ่นของผู้ใช้เพื่อแสดงในสถานที่ต่างๆ เช่น แถบสถานะ Android จะติดตามสถานะที่เกี่ยวข้องแต่เป็นอิสระสองสถานะ:
- เวลายุคปัจจุบันของ Unix
- โซนเวลาปัจจุบัน
เวลายุคปัจจุบันของ Unix และเขตเวลาปัจจุบันเป็นสถานะทั่วทั้งอุปกรณ์ ซึ่งหมายความว่าผู้ใช้ทุกคนในอุปกรณ์จะใช้ร่วมกัน
เวลายุค Unix ปัจจุบันไม่ใช่ค่าคงที่ โดยจะอัปเดตโดยอัตโนมัติเพื่อสะท้อนถึงกาลเวลา นอกเหนือจากเวลาที่ผ่านไปตามปกติแล้ว เวลายุค Unix ปัจจุบันของอุปกรณ์จะถูกปรับหากพบว่าไม่ถูกต้อง เช่น หลังจากที่อุปกรณ์สูญเสียพลังงาน
โซนเวลาปัจจุบันจะกำหนดการปรับเปลี่ยนเพื่อแปลงเวลายุค Unix ปัจจุบันเป็นเวลาท้องถิ่น ตัวอย่างเช่น ในช่วงฤดูร้อนในลอสแอนเจลิส อุปกรณ์จะลบ 7 ชั่วโมงจากยุคปัจจุบันของ Unix และในฤดูหนาวจะลบ 8 ชั่วโมง
เพื่อรองรับการคำนวณเวลาท้องถิ่น อุปกรณ์ Android ทั้งหมดมี ฐานข้อมูลกฎเขตเวลาทั่วโลกทั้งหมด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกฎเขตเวลา โปรดดู กฎเขตเวลา
เมื่อผู้ใช้เดินทางไปยังตำแหน่งใหม่ที่ใช้เขตเวลาอื่น ไม่จำเป็นต้องปรับเวลายุค Unix ปัจจุบัน แต่โดยทั่วไปผู้ใช้ต้องการดูเวลาท้องถิ่นมากกว่าเวลาในตำแหน่งก่อนหน้า การเปลี่ยนโซนเวลาปัจจุบันช่วยให้แน่ใจว่ามีการใช้ออฟเซ็ตที่ถูกต้องกับเวลายุคปัจจุบันของ Unix เพื่อแสดงเวลาท้องถิ่นที่ถูกต้องสำหรับตำแหน่งใหม่
AOSP อนุญาตให้ผู้ใช้ควบคุมได้อย่างอิสระว่าจะตั้งค่าเวลาและโซนเวลาโดยอัตโนมัติหรือไม่ผ่านกลไกต่อไปนี้
- การตรวจจับเวลาอัตโนมัติ: ตรวจสอบให้แน่ใจว่าอุปกรณ์มีเวลายุค Unix ปัจจุบันที่ถูกต้อง
- การตรวจจับโซนเวลาอัตโนมัติ: ตรวจสอบให้แน่ใจว่าอุปกรณ์มีโซนเวลาปัจจุบันที่ถูกต้อง
การตรวจจับเวลาอัตโนมัติ
ส่วนนี้จะแสดงภาพรวมของบริการ time_detector
ที่จัดการการตรวจจับเวลาอัตโนมัติ การควบคุมผู้ใช้ ตัวเลือกการกำหนดค่า และรายละเอียดการทดสอบ
บริการ time_detector
บริการ time_detector
ซึ่งมีอยู่ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป จัดการการตรวจจับเวลาอัตโนมัติ โดยจะปรับเวลายุค Unix ปัจจุบันของอุปกรณ์ตามความจำเป็นเมื่อเปิดใช้งานการตรวจจับเวลาอัตโนมัติ
บริการ time_detector
อยู่ในสถานะใดสถานะหนึ่งจากสองสถานะเสมอ: ไม่แน่นอน หรือ แน่นอน สถานะที่แน่นอนหรือความไม่แน่นอนของบริการจะพิจารณาจาก คำแนะนำด้านเวลา ที่ได้รับจากแหล่งต่างๆ
เมื่อบริการ time_detector
แน่นอน ซึ่งหมายความว่าได้รับคำแนะนำเกี่ยวกับข้อมูลเวลายุค Unix บริการจะแทนที่เวลายุค Unix ปัจจุบัน หากคำแนะนำเวลาแตกต่างจากเวลายุค Unix ปัจจุบัน
เมื่อ time_detector
ไม่แน่นอน จะไม่แทนที่เวลาปัจจุบัน สถานะที่ไม่แน่นอนมักหมายถึงบริการ time_detector
ยังไม่ได้รับคำแนะนำด้านเวลา บริการ time_detector
ยังไม่แน่ใจว่าคำแนะนำที่ได้รับถือว่าเก่าเกินไปที่จะใช้หรือไม่ อายุของคำแนะนำได้รับการพิจารณาเนื่องจากการปรับโดยใช้คำแนะนำเวลายุค Unix แบบเก่าจะขึ้นอยู่กับนาฬิกาเรียลไทม์ที่ผ่านไปบนอุปกรณ์ ซึ่งถือว่าไม่ถูกต้องในระยะเวลานาน
หากต้องการกำหนดเวลายุคปัจจุบันของ Unix โดยอัตโนมัติ อุปกรณ์จะมีแหล่งที่มาต่างๆ ที่สามารถใช้ได้ สิ่งเหล่านี้เรียกว่า ต้นกำเนิด ในเอกสารนี้ บริการ time_detector
ถือว่าลำดับของคำแนะนำมีความแตกต่างกันโดยขึ้นอยู่กับที่มา
บริการ time_detector
เป็นแบบเก็บสถานะ ซึ่งหมายความว่าจะเก็บบันทึกคำแนะนำล่าสุดที่ทำโดยแต่ละต้นทาง มีข้อเสนอแนะใหม่ให้กับ time_detector
หากต้นทางมีข้อมูลเวลายุค Unix ที่ใหม่กว่า บริการ time_detector
จะประเมินคำแนะนำใหม่และที่มีอยู่อีกครั้ง และอัปเดตสถานะของอุปกรณ์เมื่อได้รับคำแนะนำ
แม้ว่าเวลา UTC จะมีการตกลงกันในระดับสากล แต่ก็มีสาเหตุหลายประการที่ทำให้การกำหนดเวลายุค Unix ปัจจุบันไม่ได้ตรงไปตรงมาเสมอไปสำหรับอุปกรณ์ Android:
- เวลายุค Unix เป็นระบบบอกเวลาที่แตกต่างไปจากเวลา UTC อย่างละเอียด การแปลงระหว่างสองสิ่งนี้ต้องอาศัยความรู้ว่าวินาทีอธิกสุรทินจะเกิดขึ้นเมื่อใด และจะจัดการอย่างไรโดยต้นกำเนิด
- Origins อาจมีจำหน่ายเฉพาะบางช่วงเวลาหรือภายใต้สถานการณ์บางอย่างเท่านั้น ตัวอย่างเช่น หากต้นทางต้องมีการเชื่อมต่อเครือข่าย ต้นทางอาจใช้ได้เฉพาะในขณะที่อุปกรณ์เชื่อมต่อกับอินเทอร์เน็ตเท่านั้น
- ต้นกำเนิดอาจไม่ถูกต้อง ไม่แน่ชัด หรือมีข้อผิดพลาด ตัวอย่างเช่น หากหอเซลล์โทรศัพท์ไม่ได้ติดตาม "เวลาสากล" อย่างถูกต้อง ต้นทางโทรศัพท์อาจให้คำแนะนำเวลาที่ไม่ถูกต้อง
- อาจมีความไม่ถูกต้องเกิดขึ้นขณะรับเวลายุค Unix ตัวอย่างเช่น ความล่าช้าของเครือข่าย การบัฟเฟอร์ หรือการจัดกำหนดการกระบวนการอาจทำให้เวลา Unix epoch ไม่ถูกต้อง
- นาฬิกาอ้างอิงที่ใช้ในการปรับคำแนะนำสำหรับเวลาที่ผ่านไปนับตั้งแต่ได้รับคำแนะนำอาจไม่ถูกต้อง
มีต้นทางการตรวจจับเวลาหลักสองต้นที่กำหนดค่าไว้เพื่อใช้เป็นค่าเริ่มต้นใน AOSP:
- เครือข่าย : ใช้เซิร์ฟเวอร์เวลา Network Time Protocol (NTP)
- ระบบโทรศัพท์: ใช้สัญญาณโทรศัพท์ของ Network Identity and Time Zone (NITZ)
ต้นกำเนิดทั้งระบบโทรศัพท์และเครือข่ายจำเป็นต้องมีการเชื่อมต่อกับเครือข่ายภายนอก ซึ่งอาจไม่พร้อมใช้งานเสมอไป
ตั้งแต่ Android 12 เป็นต้นไป Android ยังรองรับต้นทางต่อไปนี้ด้วย ซึ่งไม่ได้กำหนดค่าไว้เพื่อใช้ตามค่าเริ่มต้น
- GNSS : ใช้ผู้ให้บริการตำแหน่ง GPS เพื่อรับเวลาจากแหล่ง GNSS
- ภายนอก : ต้นกำเนิดทั่วไปที่ช่วยให้ผู้ผลิตอุปกรณ์สามารถรวมแหล่งที่มาของเวลายุค Unix ของตนเองได้
การตั้งค่าเวลา
ผู้ใช้สามารถเปิดใช้งานการตรวจจับเวลาอัตโนมัติใน ระบบ > วันที่และเวลา ในแอปการตั้งค่า AOSP
รูปที่ 1 การตรวจจับเวลาอัตโนมัติในการตั้งค่า
ตารางต่อไปนี้อธิบายการควบคุมผู้ใช้สำหรับการตรวจหาเวลาในแอปการตั้งค่า AOSP
*ใน Android 11 และต่ำกว่า การตั้งค่านี้มีป้ายกำกับ ว่าใช้เวลาที่กำหนดโดยเครือข่าย | |||
ตำแหน่งการตั้งค่า AOSP | ชื่อการตั้งค่า AOSP | ขอบเขต | พฤติกรรม |
---|---|---|---|
ระบบ > วันที่และเวลา | ตั้งเวลาอัตโนมัติ* | ผู้ใช้ทั้งหมด | สลับ เมื่อ เปิด อุปกรณ์จะรับผิดชอบในการตรวจจับเวลายุคปัจจุบันของ Unix เมื่อ ปิด ผู้ใช้จะได้รับการควบคุมเพื่อตั้งเวลาของอุปกรณ์ด้วยตนเอง |
เมื่อผู้ใช้ป้อนเวลาด้วยตนเอง ผู้ใช้จะป้อนเวลาท้องถิ่น ไม่ใช่เวลายุค Unix เวลายุค Unix ปัจจุบันคำนวณโดยใช้เขตเวลาปัจจุบันเพื่อรับเวลายุค 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 หรือต่ำกว่าได้ โดยที่ระบบโทรศัพท์จะได้รับลำดับความสำคัญสูงกว่า
ตามค่าเริ่มต้น หากคำแนะนำที่ถูกต้องซึ่งมีลำดับความสำคัญสูงสุดตรงกับเวลานาฬิการะบบปัจจุบันของอุปกรณ์ภายในสองสามวินาที เวลาของอุปกรณ์ จะไม่ เปลี่ยนแปลง นี่เป็นการหลีกเลี่ยงการสร้างงานสำหรับแอปที่ติดตั้งซึ่งรับฟังเจตนา 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
และสถานะของบริการ 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 ปัจจุบันของอุปกรณ์
ข้อมูลประวัติข้อเสนอแนะจะระบุว่าแต่ละแหล่งให้คำแนะนำอะไรบ้าง
การตรวจจับโซนเวลาอัตโนมัติ
ส่วนนี้จะแสดงภาพรวมของบริการ 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
ถูกกำหนดโดย คำแนะนำเขตเวลา ที่ส่งโดย อัลกอริทึม
โดยทั่วไป คำแนะนำจะมีสองประเภทที่ใกล้เคียงกันกับสถานะที่เป็นไปได้ของ time_zone_detector
อย่างใกล้ชิด : some และ ไม่แน่ใจ ต่อไปนี้เป็นตัวอย่างของประเภทข้อเสนอแนะ:
ประเภท =
uncertain
,zoneIds = []
- อัลกอริทึมไม่ทราบว่าเขตเวลาคืออะไร
ประเภท =
certain
,zoneIds = ["Europe/London"]
- อัลกอริธึมแน่ใจว่าโซนคือยุโรป/ลอนดอน
ประเภท =
certain
,zoneIds = []
`- อัลกอริทึมนั้นแน่นอน แต่ไม่มีรหัสโซนที่เชื่อมโยงกับตำแหน่งปัจจุบัน
type =
certain
,zoneIds = ["America/Denver", "America/Phoenix"]
- อัลกอริธึมมั่นใจว่าคำตอบเป็นหนึ่งในสองโซน แต่ไม่สามารถเลือกระหว่าง "อเมริกา/เดนเวอร์" และ "อเมริกา/ฟีนิกซ์" ได้
บริการ time_zone_detector
จะถือว่าลำดับของคำแนะนำมีความแตกต่างกันตามอัลกอริทึม คำแนะนำอาจมีข้อมูลเมตาที่บ่งชี้ว่าอัลกอริทึมมีความแน่นอนเพียงใด ทั้งนี้ขึ้นอยู่กับอัลกอริทึม
บริการ time_zone_detector
เป็นแบบเก็บสถานะ ซึ่งหมายความว่าจะเก็บบันทึกคำแนะนำล่าสุดที่สร้างโดยแต่ละอัลกอริทึม คำแนะนำใหม่จะถูกส่งไปยังบริการ time_zone_detector
หากคำแนะนำก่อนหน้านี้ไม่ถูกต้องอีกต่อไป นั่นคือหากอัลกอริทึมมีคำแนะนำที่แตกต่างออกไป หรือหากสูญเสียความสามารถในการตรวจจับเขตเวลาแล้ว บริการ time_zone_detector
จะประเมินคำแนะนำใหม่และที่มีอยู่อีกครั้ง และอัปเดตสถานะอุปกรณ์เมื่อได้รับคำแนะนำ
Android รองรับสองอัลกอริธึมสำหรับการตรวจจับโซนเวลา:
- โทรศัพท์
- ที่ตั้ง
โดยทั่วไปบริการ time_zone_detector
จะใช้อัลกอริทึมเดียวในการกำหนดเขตเวลา เมื่ออุปกรณ์รองรับอัลกอริธึมตำแหน่ง อัลกอริธึมที่อุปกรณ์ใช้จะถูกกำหนดตาม การตั้งค่าโซนเวลา ที่กำหนดค่าโดยผู้ใช้ เมื่ออัลกอริทึมที่ใช้งานอยู่เกิดความไม่แน่นอนเกี่ยวกับเขตเวลา โดยปกติแล้ว time_zone_detector
จะไม่ใช้คำแนะนำจากอัลกอริทึมอื่น คำแนะนำที่เกี่ยวข้องกับอัลกอริธึมที่ไม่ได้ใช้งานสามารถเก็บไว้ในหน่วยความจำได้ตาม time_zone_detector
แต่จะไม่ได้ใช้จนกว่าอัลกอริธึมจะเปลี่ยนแปลง เมื่อผู้ใช้เปลี่ยนการตั้งค่าสำหรับการตรวจหาโซนเวลาอัตโนมัติและอัลกอริธึมเปลี่ยนแปลง คำแนะนำล่าสุดสำหรับอัลกอริธึมใหม่จะถูกนำมาใช้
สำหรับรายละเอียดเกี่ยวกับสถานการณ์ที่ใช้หลายอัลกอริธึมเพื่อกำหนดเขตเวลา โปรดดูที่ โหมดสำรองระบบโทรศัพท์
โหมดสำรองระบบโทรศัพท์
ในอุปกรณ์ที่ใช้ Android 13 ขึ้นไป บริการ time_zone_detector
รองรับ โหมดสำรองระบบโทรศัพท์ โหมดนี้ช่วยให้ Android ใช้คำแนะนำการตรวจจับโทรศัพท์ชั่วคราวในสถานการณ์ที่การตรวจจับตำแหน่งไม่สามารถตรวจจับโซนเวลาได้ หรือในกรณีที่การตรวจจับตำแหน่งใช้เวลาในการตรวจจับโซนเวลานานกว่าการตรวจจับโทรศัพท์
โหมดสำรองระบบโทรศัพท์ใช้กับอุปกรณ์ที่รองรับทั้งระบบโทรศัพท์และการตรวจจับตำแหน่ง และสถานที่ที่ผู้ใช้เปิดใช้งาน ใช้ตำแหน่งเพื่อตั้งค่าโซนเวลา ใน การตั้งค่าโซนเวลา โหมดนี้จะเปิดใช้งานโดยอัตโนมัติเมื่ออุปกรณ์รีบูต และเมื่อปิดใช้งานโหมดเครื่องบิน
ใน Android 14 ขึ้นไป ระบบโทรศัพท์สำรองสามารถทริกเกอร์ได้ผ่าน API การรายงานสถานะ LTZP กล่าวคือ หาก LTZP รายงานว่ามีความไม่แน่นอน และ ความสามารถในการตรวจจับตำแหน่งหรือเขตเวลาลดระดับลงตามสภาพแวดล้อม โหมดสำรองโทรศัพท์จะถูกทริกเกอร์
เมื่ออยู่ในโหมดสำรองระบบโทรศัพท์ time_zone_detector
จะใช้คำแนะนำระบบโทรศัพท์เหมือนกับว่าการตรวจหาตำแหน่งถูกปิดใช้งาน จนกว่า อัลกอริทึมตำแหน่งจะให้คำแนะนำบางอย่าง หลังจากได้รับคำแนะนำบางอย่างแล้ว โหมดสำรองระบบโทรศัพท์จะถูกปิดใช้งาน และข้อเสนอแนะตำแหน่งจะถูกใช้โดยเฉพาะ
สำหรับรายละเอียดการกำหนดค่าสำหรับโหมดสำรองระบบโทรศัพท์ โปรดดู การกำหนดค่าการตรวจจับโซนเวลา
การตั้งค่าเขตเวลา
ผู้ใช้สามารถเปิดใช้งานและกำหนดการตั้งค่าสำหรับการตรวจหาโซนเวลาอัตโนมัติในแอปการตั้งค่า AOSP
รูปที่ 2 การตรวจจับโซนเวลาอัตโนมัติในการตั้งค่า
ตารางต่อไปนี้อธิบายการควบคุมผู้ใช้สำหรับการตรวจหาโซนเวลาในแอปการตั้งค่า AOSP
*ใน Android 11 และต่ำกว่า การตั้งค่านี้มีป้ายกำกับ ว่าใช้เขตเวลาที่กำหนดโดยเครือข่าย | |||
ตำแหน่งการตั้งค่า AOSP | ชื่อการตั้งค่า AOSP | ขอบเขต | พฤติกรรม |
---|---|---|---|
ระบบ > วันที่และเวลา | ตั้งค่าเขตเวลาอัตโนมัติ* | ผู้ใช้ทั้งหมด | สลับ เมื่อ เปิด อุปกรณ์จะรับผิดชอบในการตรวจจับเขตเวลาปัจจุบัน เมื่อ ปิด ผู้ใช้จะได้รับการควบคุมเพื่อตั้งค่าเขตเวลาของอุปกรณ์ด้วยตนเอง |
ระบบ > วันที่และเวลา | ใช้ตำแหน่ง เพื่อกำหนดเขตเวลา | ผู้ใช้ปัจจุบัน | สลับ ใช้งานได้ตั้งแต่ Android 12 การสลับนี้จะแสดงเฉพาะเมื่ออุปกรณ์รองรับการตรวจหาโซนเวลาของตำแหน่งเท่านั้น สำหรับการเปลี่ยนแปลงที่นำมาใช้ในข้อ 14 โปรดดู อุปกรณ์ที่รองรับเฉพาะการตรวจจับโซนเวลาของตำแหน่ง |
ที่ตั้ง | ใช้สถานที่ | ผู้ใช้ปัจจุบัน | สลับ อนุญาตหรือป้องกันการใช้ตำแหน่งของอุปกรณ์โดยทั่วไป ค่าจะเกี่ยวข้องหากอุปกรณ์รองรับการตรวจจับโซนเวลาของตำแหน่ง |
ข้อมูลต่อไปนี้จะแสดงภาพรวมของลักษณะการทำงานของอุปกรณ์สำหรับการตรวจจับโซนเวลาตามการตั้งค่าที่ผู้ใช้เลือก:
[วันที่และเวลา] ตั้งค่าโซนเวลาอัตโนมัติ: ปิด
- ผู้ใช้จะต้องเลือกเขตเวลาด้วยตนเอง
[วันที่และเวลา] ตั้งค่าโซนเวลาอัตโนมัติ: เปิด
[ตำแหน่ง] ใช้ตำแหน่ง: ปิด
- สัญญาณโทรศัพท์ใช้เพื่อตรวจจับเขตเวลา
[ตำแหน่ง] ใช้ตำแหน่ง: เปิด
[วันที่และเวลา] ใช้ตำแหน่งเพื่อตั้งค่าเขตเวลา: เปิด
- ตำแหน่งใช้เพื่อตรวจจับเขตเวลา
[วันที่และเวลา] ใช้ตำแหน่งเพื่อตั้งค่าเขตเวลา: ปิด
- สัญญาณโทรศัพท์ใช้เพื่อตรวจจับเขตเวลา
อุปกรณ์ผู้ใช้หลายเครื่อง
เนื่องจากการตั้งค่าหลายอย่างที่เกี่ยวข้องกำหนดขอบเขตไว้ที่ผู้ใช้ปัจจุบัน พฤติกรรมการตรวจจับเขตเวลาของอุปกรณ์จึงสามารถเปลี่ยนแปลงได้เมื่อผู้ใช้ปัจจุบันเปลี่ยนแปลงบนอุปกรณ์ Android ที่มีผู้ใช้หลายคน
การสลับใช้ตำแหน่งเพื่อตั้งค่าเขตเวลา นั้นกำหนดขอบเขตไว้ที่ผู้ใช้ปัจจุบันและไม่ถูกจำกัดโดยนโยบายด้านอุปกรณ์ ซึ่งหมายความว่าผู้ใช้สามารถเปลี่ยนค่าได้ตลอดเวลา แม้ว่าการสลับ ตั้งค่าเขตเวลาโดยอัตโนมัติ จะปิดอยู่ หรือหากการควบคุมเวลาหรือโซนเวลาอื่น ถูกจำกัดโดย Device Policy Controller
อุปกรณ์ที่รองรับเฉพาะอัลกอริธึมการตรวจจับโซนเวลาของตำแหน่ง
ส่วนนี้จะอธิบายลักษณะการทำงานของอุปกรณ์ที่รองรับเฉพาะอัลกอริธึมตำแหน่งเท่านั้น
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
หากต้องการคืนค่าการซิงโครไนซ์แฟล็กหลังการทดสอบ ให้ใช้:
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
สำหรับการทดสอบหรือในการใช้งานจริง สำหรับรายละเอียด โปรดดู การกำหนดค่าอุปกรณ์โดยใช้บริการ 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 | ไม่ว่าผู้ใช้จะถูกป้องกันไม่ให้ควบคุมการตั้งค่าวันที่และเวลาโดย Device Policy Controller หรือไม่ |
mTelephonyDetectionSupported | ไม่ว่าอุปกรณ์จะมีการตรวจจับโซนเวลาของโทรศัพท์หรือไม่ |
mGeoDetectionSupported | อุปกรณ์รองรับการตรวจจับโซนเวลาของตำแหน่งหรือไม่ นี่คือสถานะ ที่มีผล ตามการกำหนดค่า และ การมีอยู่ของ LTZP อย่างน้อยหนึ่งรายการ |
mAutoDetectionEnabled | เปิดใช้งานการตรวจหาโซนเวลาอัตโนมัติหรือไม่ |
mLocationEnabled | สลับตำแหน่งหลัก |
mGeoDetectionEnabled | สวิตช์อัลกอริธึม: false หมายถึงอัลกอริธึมระบบโทรศัพท์ และ true หมายถึงอัลกอริธึมตำแหน่ง |
ข้อมูลประวัติข้อเสนอแนะจะระบุว่ามีข้อเสนอแนะอะไรบ้างผ่านการตั้งค่า (ด้วยตนเอง) และโดยอัลกอริธึมระบบโทรศัพท์และตำแหน่ง