समय की खास जानकारी

इस पेज पर बताया गया है कि Android पर समय और टाइम ज़ोन की पहचान करने की सुविधा कैसे काम करती है. इसमें यह जानकारी शामिल है कि Android, समय और टाइम ज़ोन का पता अपने-आप कैसे लगाता है. साथ ही, डिवाइस बनाने वाली कंपनियों के लिए कॉन्फ़िगरेशन के विकल्प और टेस्टिंग की जानकारी भी शामिल है.

समय और टाइम ज़ोन की खास जानकारी

स्टेटस बार जैसी जगहों पर उपयोगकर्ता का स्थानीय समय दिखाने के लिए, Android दो मिलती-जुलती, लेकिन अलग-अलग स्थितियों को ट्रैक करता है:

  • यूनिक्स के मौजूदा समय का हिसाब
  • मौजूदा टाइम ज़ोन

यूनिक्स के मौजूदा युग का समय और मौजूदा टाइम ज़ोन, डिवाइस के सभी उपयोगकर्ताओं के लिए एक जैसा होता है. इसका मतलब है कि ये किसी डिवाइस के सभी उपयोगकर्ताओं के साथ शेयर किए जाते हैं.

मौजूदा यूनिक्स युग का समय, कोई तय वैल्यू नहीं है. यह समय के साथ अपने-आप अपडेट होता है. समय के सामान्य बीत जाने के अलावा, अगर किसी डिवाइस का मौजूदा यूनिक्स युग का समय गलत पाया जाता है, तो उसमें बदलाव किया जाता है. उदाहरण के लिए, डिवाइस की बैटरी खत्म होने के बाद.

मौजूदा टाइम ज़ोन से यह तय होता है कि मौजूदा Unix epoch टाइम को लोकल टाइम में बदलने के लिए, कितना बदलाव करना है. उदाहरण के लिए, लॉस एंजेलिस में गर्मियों के दौरान, डिवाइस मौजूदा यूनिक्स युग के समय से सात घंटे घटाता है. वहीं, सर्दियों में यह आठ घंटे घटाता है.

स्थानीय समय का हिसाब लगाने के लिए, सभी Android डिवाइसों में ग्लोबल टाइम ज़ोन के सभी नियमों का डेटाबेस होता है. टाइम ज़ोन के नियमों के बारे में ज़्यादा जानने के लिए, टाइम ज़ोन के नियम देखें.

जब कोई उपयोगकर्ता किसी ऐसी नई जगह पर जाता है जहां किसी दूसरे टाइम ज़ोन का इस्तेमाल किया जाता है, तो यूनिक्स के मौजूदा युग के समय में बदलाव करने की ज़रूरत नहीं होती. हालांकि, आम तौर पर उपयोगकर्ता अपनी पिछली जगह के समय के बजाय, स्थानीय समय देखना चाहता है. मौजूदा टाइम ज़ोन बदलने से, यह पक्का होता है कि नई जगह के लिए सही स्थानीय समय दिखाने के लिए, मौजूदा यूनिक्स युग के समय पर सही ऑफ़सेट लागू किया गया हो.

AOSP की मदद से, उपयोगकर्ता यह कंट्रोल कर सकते हैं कि समय और टाइम ज़ोन उनके लिए अपने-आप सेट हो या नहीं. इसके लिए, नीचे दिए गए तरीके अपनाए जा सकते हैं.

  • समय का अपने-आप पता चलना: इससे यह पक्का होता है कि डिवाइस पर, यूनिक्स के मौजूदा युग का समय सही है.
  • टाइम ज़ोन की अपने-आप पहचान करने की सुविधा: इससे यह पक्का होता है कि डिवाइस पर मौजूदा टाइम ज़ोन सही है.

समय की अपने-आप पहचान करने की सुविधा

इस सेक्शन में, time_detector सेवा के बारे में खास जानकारी दी गई है. यह सेवा, समय की अपने-आप पहचान करने की सुविधा, उपयोगकर्ता कंट्रोल, कॉन्फ़िगरेशन के विकल्प, और जांच की जानकारी को मैनेज करती है.

time_detector सेवा

Android 10 या इसके बाद के वर्शन पर चलने वाले डिवाइसों पर मौजूद time_detector सेवा, समय का अपने-आप पता लगाने की सुविधा को मैनेज करती है. समय का अपने-आप पता चलने की सुविधा चालू होने पर, यह डिवाइस के मौजूदा Unix epoch समय में ज़रूरत के हिसाब से बदलाव करता है.

time_detector सेवा हमेशा इनमें से किसी एक स्थिति में होती है: अनिश्चित या निश्चित. सेवा के उपलब्ध होने या न होने की स्थिति, अलग-अलग सोर्स से मिले समय के सुझावों से तय होती है.

जब time_detector सेवा को यकीन हो जाता है, यानी उसे यूनिक्स टाइम के बारे में सुझाव मिल जाता है, तो वह मौजूदा यूनिक्स टाइम को बदल देती है. ऐसा तब होता है, जब सुझाया गया समय, मौजूदा यूनिक्स टाइम से अलग हो.

अगर time_detector की वैल्यू अनिश्चित है, तो यह मौजूदा समय को बदल नहीं देती. आम तौर पर, time_detector सेवा को समय के सुझाव न मिलने पर, स्थिति 'अनिश्चित' दिखती है. अगर time_detector को मिले सुझावों को इस्तेमाल करने के लिए बहुत पुराना माना जाता है, तो भी सेवा के काम करने की संभावना कम हो जाती है. सुझावों की उम्र को इसलिए ध्यान में रखा जाता है, क्योंकि Unix epoch के पुराने समय के सुझावों का इस्तेमाल करके किए गए बदलाव, डिवाइस पर बीते हुए रीयल टाइम घड़ी पर निर्भर करते हैं. यह माना जाता है कि लंबे समय तक यह घड़ी सटीक नहीं रहती.

डिवाइस पर, यूनिक्स के मौजूदा समय को अपने-आप सेट करने के लिए, कई सोर्स का इस्तेमाल किया जा सकता है. इस दस्तावेज़ में इन्हें ऑरिजिन कहा जाता है. time_detector सेवा, सुझावों के क्रम को उनके सोर्स के आधार पर अलग-अलग मानती है.

time_detector सेवा स्टेटफ़ुल होती है. इसका मतलब है कि यह हर ऑरिजिन के सबसे हाल के सुझाव का रिकॉर्ड रखती है. अगर किसी ऑरिजिन में यूनिक्स युग के समय की नई जानकारी उपलब्ध है, तो time_detector के लिए नए सुझाव दिए जाते हैं. time_detector सेवा, नए और मौजूदा सुझावों का फिर से आकलन करती है और सुझाव मिलने पर डिवाइस की स्थिति अपडेट करती है.

यूटीसी समय को अंतरराष्ट्रीय स्तर पर स्वीकार किया गया है. हालांकि, Android डिवाइस के लिए, यूनिक्स के मौजूदा युग का समय तय करना हमेशा आसान नहीं होता. इसकी कई वजहें हैं:

  • यूनिक्स एपिक टाइम, यूटीसी टाइम से थोड़ा अलग होता है. दोनों में से किसी एक टाइमस्टैंप को दूसरे में बदलने के लिए, यह जानना ज़रूरी है कि लीप सेकंड कब होते हैं और ऑरिजिन उन्हें कैसे मैनेज करते हैं.
  • हो सकता है कि ऑरिजिन सिर्फ़ कुछ समय या कुछ स्थितियों में उपलब्ध हों. उदाहरण के लिए, अगर ऑरिजिन को नेटवर्क कनेक्शन की ज़रूरत है, तो हो सकता है कि यह सिर्फ़ तब उपलब्ध हो, जब डिवाइस इंटरनेट से कनेक्ट हो.
  • हो सकता है कि ऑरिजिन की जानकारी गलत या अधूरी हो या उसमें गड़बड़ियां हों. उदाहरण के लिए, अगर कोई टेलीफ़ोन सेल टावर "यूनिवर्सल टाइम" को सही तरीके से ट्रैक नहीं कर रहा है, तो हो सकता है कि टेलीफ़ोन ऑरिजिन, समय के गलत सुझाव दे.
  • Unix epoch टाइम का इस्तेमाल करते समय, गलतियां हो सकती हैं. उदाहरण के लिए, नेटवर्क में देरी, बफ़रिंग या प्रोसेस शेड्यूलिंग की वजह से, यूनिक्स के टाइमस्टैंप में गड़बड़ी हो सकती है.
  • सुझाव मिलने के बाद, बीत चुके समय के हिसाब से सुझाव में बदलाव करने के लिए इस्तेमाल की गई रेफ़रंस घड़ी गलत हो सकती है.

AOSP में डिफ़ॉल्ट रूप से इस्तेमाल करने के लिए, समय का पता लगाने के दो मुख्य सोर्स कॉन्फ़िगर किए गए हैं:

  • नेटवर्क: नेटवर्क टाइम प्रोटोकॉल (एनटीपी) टाइम सर्वर का इस्तेमाल करता है.
  • टेलीफ़ोन सेवा: नेटवर्क आइडेंटिटी और टाइम ज़ोन (NITZ) टेलीफ़ोन सेवा के सिग्नल का इस्तेमाल करता है.

टेलीफ़ोन और नेटवर्क, दोनों के लिए बाहरी नेटवर्क से कनेक्ट होना ज़रूरी है. हालांकि, ये नेटवर्क हमेशा उपलब्ध नहीं होते.

Android 12 से, Android इन ऑरिजिन के साथ भी काम करता है. हालांकि, इन्हें डिफ़ॉल्ट रूप से इस्तेमाल करने के लिए कॉन्फ़िगर नहीं किया गया है:

  • GNSS: GNSS सोर्स से समय पाने के लिए, जीपीएस लोकेशन की जानकारी देने वाली सेवा का इस्तेमाल करता है.
  • एक्सटर्नल: सामान्य ऑरिजिन, जिसकी मदद से डिवाइस बनाने वाली कंपनियां, यूनिक्स के टाइम पीरियड के अपने सोर्स को इंटिग्रेट कर सकती हैं.

समय सेटिंग

उपयोगकर्ता, AOSP Settings ऐप्लिकेशन में सिस्टम > तारीख और समय में जाकर, समय का अपने-आप पता चलने की सुविधा चालू कर सकते हैं.

सेटिंग में जाकर, समय का अपने-आप पता चलने की सुविधा

पहली इमेज. सेटिंग में जाकर, समय अपने-आप पता लगाने की सुविधा चालू करना.

इस टेबल में, AOSP सेटिंग ऐप्लिकेशन में समय का पता लगाने के लिए, उपयोगकर्ता के कंट्रोल के बारे में बताया गया है.

*Android 11 और उससे पहले के वर्शन पर, इस सेटिंग को नेटवर्क से मिले समय का इस्तेमाल करें के तौर पर लेबल किया गया है

AOSP सेटिंग की जगह AOSP सेटिंग का नाम दायरा व्यवहार
सिस्टम > तारीख और समय समय अपने-आप सेट हो जाए* सभी उपयोगकर्ता

टॉगल.

चालू होने पर, डिवाइस मौजूदा Unix युग के समय का पता लगाता है. बंद होने पर, उपयोगकर्ताओं को डिवाइस का समय मैन्युअल रूप से सेट करने के लिए कंट्रोल मिलते हैं.

जब उपयोगकर्ता समय को मैन्युअल तरीके से डालता है, तो वह यूनिक्स इकोपॉच टाइम के बजाय, अपना स्थानीय समय डालता है. Unix epoch time का हिसाब लगाने के लिए, मौजूदा टाइम ज़ोन का इस्तेमाल किया जाता है.

कॉन्फ़िगरेशन

डिवाइस बनाने वाली कंपनियां, time_detector सेवा को कई तरीकों से कॉन्फ़िगर कर सकती हैं. जैसे, किन ऑरिजिन का इस्तेमाल करना है और उनसे मिलने वाले सिग्नल को प्राथमिकता कैसे देनी है.

ऑरिजिन की प्राथमिकता तय करना

Android 12 में, डिवाइस बनाने वाली कंपनियां core/res/res/values/config.xmlकॉन्फ़िगरेशन फ़ाइल में बदलाव कर सकती हैं. इससे, यह तय किया जा सकता है कि समय का पता अपने-आप लगाने की सुविधा में, समय की जानकारी देने वाले किन सोर्स को शामिल करना है. साथ ही, यह भी तय किया जा सकता है कि 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 सेवा, यूनिक्स के टाइम पीरियड के सुझावों की पुष्टि नहीं करती.

समय डीबग करना और जांच करना

इस सेक्शन में, time_detector सेवा और उन अन्य कॉम्पोनेंट के व्यवहार को डीबग करने और उनकी जांच करने का तरीका बताया गया है जिन्हें सभी ऑरिजिन शेयर करते हैं.

time_detector सेवा के साथ इंटरैक्ट करना

time_detector सेवा के कॉन्फ़िगरेशन और time_detector सेवा की स्थिति देखने के लिए, इनका इस्तेमाल करें:

adb shell cmd time_detector dump

टाइम ज़ोन की पहचान करने की सुविधा को डीबग करने और उसकी जांच करने के लिए, अन्य निर्देश देखने के लिए:

adb shell cmd time_detector help

सहायता आउटपुट में, device_config सेवा की उन प्रॉपर्टी के बारे में भी बताया गया है जिनका इस्तेमाल, जांच या प्रोडक्शन के लिए time_detector के व्यवहार पर असर डालने के लिए किया जा सकता है. ज़्यादा जानकारी के लिए, device_config सेवा का इस्तेमाल करके डिवाइस को कॉन्फ़िगर करना लेख पढ़ें.

समय का अपने-आप पता चलने की पुष्टि करने के लिए, यह जानना ज़रूरी है कि time_detector सेवा किन ऑरिजिन का इस्तेमाल कर रही है. adb shell cmd time_detector dump कमांड के आउटपुट का उदाहरण यहां दिया गया है. इसमें, मौजूदा ऑरिजिन और सेवा की स्थिति की जानकारी बोल्ड में दी गई है:

$ adb shell cmd time_detector dump

TimeDetectorStrategy:
  mLastAutoSystemClockTimeSet=null
  mEnvironment.isAutoTimeDetectionEnabled()=true
  mEnvironment.elapsedRealtimeMillis()=23717241
  mEnvironment.systemClockMillis()=1626707861336
  mEnvironment.systemClockUpdateThresholdMillis()=2000
  mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
  mEnvironment.autoOriginPriorities()=[network,telephony]
  Time change log:
    ...
  Telephony suggestion history:
    ...
  Network suggestion history:
    ...
  Gnss suggestion history:
    ...
  External suggestion history:
    ...

इस जानकारी का मतलब इस तरह समझा जा सकता है:

कुंजी वैल्यू
mEnvironment.isAutoTimeDetectionEnabled() समय की अपने-आप पहचान करने की सुविधा चालू है या नहीं.
mEnvironment.autoTimeLowerBound() समय के सुझावों की पुष्टि करने के लिए इस्तेमाल किया जाने वाला मौजूदा लोअर बाउंड.
mEnvironment.autoOriginPriorities() इस्तेमाल में मौजूद ऑरिजिन और प्राथमिकता का क्रम.

समय में हुए बदलाव के लॉग से उन मौकों के बारे में पता चलता है जब time_detector सेवा ने डिवाइस के मौजूदा Unix epoch समय को बदला है.

सुझाव के इतिहास की जानकारी से पता चलता है कि हर सोर्स से कौनसे सुझाव दिए गए हैं.

टाइम ज़ोन की अपने-आप पहचान करने की सुविधा

इस सेक्शन में, time_zone_detector सेवा के बारे में खास जानकारी दी गई है. यह सेवा, टाइम ज़ोन का अपने-आप पता लगाने की सुविधा, सेटिंग में उपयोगकर्ता कंट्रोल, टेलीफ़ोनी, और जगह के हिसाब से टाइम ज़ोन का पता लगाने की सुविधा को मैनेज करती है. साथ ही, इसमें जांच से जुड़ी जानकारी भी दी गई है.

time_zone_detector सेवा

Android 11 या इसके बाद के वर्शन पर चलने वाले डिवाइसों पर मौजूद time_zone_detector सेवा, टाइमज़ोन का अपने-आप पता लगाने की सुविधा को मैनेज करती है. टाइम ज़ोन अपने-आप पहचानने की सुविधा चालू होने पर, यह ज़रूरत के हिसाब से डिवाइस के मौजूदा टाइम ज़ोन में बदलाव करता है.

टाइम ज़ोन की अपने-आप पहचान करने की सुविधा चालू होने पर, time_zone_detector की दो स्थितियां हो सकती हैं: पता नहीं और पता है.

जब time_zone_detector सेवा किसी खास स्थिति में होती है, तो इसका मतलब है कि time_zone_detector सेवा को टाइम ज़ोन की सटीक जानकारी मिली है. इस वजह से, हो सकता है कि वह मौजूदा टाइम ज़ोन को बदल दे. अगर यह अनिश्चित है, तो इसका मतलब है कि उसे कोई जानकारी नहीं मिली है या सिर्फ़ कम भरोसेमंद जानकारी मिली है. इसका मतलब है कि यह मौजूदा टाइम ज़ोन को बदल नहीं पाएगा.

time_zone_detector सेवा के कुछ राज्यों में ऐसे राज्य शामिल हो सकते हैं जहां time_zone_detector के पास इस्तेमाल करने के लिए टाइम ज़ोन की जानकारी न हो या जहां एक से ज़्यादा टाइम ज़ोन में से किसी एक को चुनना पड़े. ये राज्य हैं:

  • जब डिवाइस किसी ऐसे इलाके में होता है जहां टाइम ज़ोन नहीं होता, तो टाइम ज़ोन के तौर पर 'कोई टाइम ज़ोन नहीं' वाला कोई राज्य डाला जाता है. जैसे, अंतरराष्ट्रीय जलक्षेत्र या विवादित इलाका. यह स्थिति, 'पता नहीं' स्थिति से मिलती-जुलती है. हालांकि, इससे पता चलता है कि time_zone_detector को टाइम ज़ोन तय करने के लिए, कोई और कार्रवाई करने की ज़रूरत नहीं है.
  • किसी ऐसे राज्य का नाम डाला गया है जहां एक से ज़्यादा टाइम ज़ोन हैं और जहां सीमाओं से जुड़ी शर्तें या जानकारी साफ़ तौर पर नहीं दी गई है. इस स्थिति में, अगर मौजूदा टाइम ज़ोन, time_zone_detector के लिए तय किए गए टाइम ज़ोन में से एक है, तो मौजूदा टाइम ज़ोन को वैसे ही छोड़ दिया जाता है. अगर ऐसा नहीं है, तो उपलब्ध टाइम ज़ोन में से किसी एक का इस्तेमाल किया जाता है. अगर उपयोगकर्ता ने पहले मैन्युअल तरीके से अपना टाइम ज़ोन चुना है या डिवाइस किसी सीमा के आस-पास है, तो इससे time_zone_detector को स्टिकiness का एलिमेंट मिलता है.

time_zone_detector सेवा के उपलब्ध होने या न होने की स्थिति, टाइम ज़ोन के सुझावों से तय होती है. ये सुझाव, एल्गोरिदम से भेजे जाते हैं.

आम तौर पर, सुझाव दो तरह के होते हैं, जो time_zone_detectorकी संभावित स्थितियों से काफ़ी हद तक मेल खाते हैं: पक्का और अनिश्चित. अलग-अलग तरह के सुझावों के उदाहरण यहां दिए गए हैं:

  • type = uncertain, zoneIds = []

    • एल्गोरिदम को नहीं पता कि टाइम ज़ोन क्या है.
  • type = certain, zoneIds = ["Europe/London"]

    • एल्गोरिदम को पता है कि ज़ोन, यूरोप/लंदन है.
  • type = certain, zoneIds = []`

    • एल्गोरिदम सही है, लेकिन मौजूदा जगह से कोई ज़ोन आईडी नहीं जुड़ा है.
  • type = certain, zoneIds = ["America/Denver", "America/Phoenix"]

    • एल्गोरिदम को पता है कि जवाब दो ज़ोन में से एक है, लेकिन वह "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 और इसके बाद के वर्शन में, LTZP स्टेटस रिपोर्टिंग एपीआई की मदद से, टेलीफ़ोनी फ़ॉलबैक मोड को ट्रिगर किया जा सकता है. इसका मतलब है कि अगर LTZP रिपोर्ट करता है कि स्थिति अनिश्चित है और उसके आस-पास के वातावरण की वजह से, जगह या टाइम ज़ोन का पता लगाने की उसकी क्षमता कम हो जाती है, तो टेलीफ़ोनी फ़ॉलबैक मोड ट्रिगर हो जाता है.

टेलीफ़ोनी फ़ॉलबैक मोड में होने पर, time_zone_detector सेवा टेलीफ़ोनी के सुझावों का इस्तेमाल इस तरह करती है जैसे कि जगह की जानकारी का पता लगाने की सुविधा बंद हो. ऐसा तब तक किया जाता है, जब तक कि जगह की जानकारी का पता लगाने वाला एल्गोरिदम कोई सुझाव न दे. कोई सुझाव मिलने के बाद, टेलीफ़ोनी के लिए फ़ॉलबैक मोड बंद हो जाता है और जगह की जानकारी के सुझावों का इस्तेमाल किया जाता है.

टेलीफ़ोनी फ़ॉलबैक मोड के कॉन्फ़िगरेशन की जानकारी के लिए, टाइम ज़ोन का पता लगाने के लिए कॉन्फ़िगरेशन देखें.

टाइम ज़ोन के हिसाब से सेटिंग

उपयोगकर्ता, AOSP Settings ऐप्लिकेशन में जाकर, टाइम ज़ोन का अपने-आप पता लगाने की सुविधा को चालू और कॉन्फ़िगर कर सकते हैं.

सेटिंग में जाकर, टाइम ज़ोन की अपने-आप पहचान करने की सुविधा

दूसरी इमेज. सेटिंग में, टाइम ज़ोन की अपने-आप पहचान करने की सुविधा.

नीचे दी गई टेबल में, AOSP Settings ऐप्लिकेशन में टाइम ज़ोन की पहचान करने की सुविधा के लिए, उपयोगकर्ता के कंट्रोल के बारे में बताया गया है.

*Android 11 और उससे पहले के वर्शन पर, इस सेटिंग का लेबल नेटवर्क से मिले टाइम ज़ोन का इस्तेमाल करें है

AOSP सेटिंग की जगह AOSP सेटिंग का नाम दायरा व्यवहार
सिस्टम > तारीख और समय टाइम ज़ोन अपने-आप सेट हो जाए* सभी उपयोगकर्ता

टॉगल.

चालू होने पर, डिवाइस मौजूदा टाइमज़ोन का पता लगाता है. बंद होने पर, उपयोगकर्ताओं को डिवाइस का टाइम ज़ोन मैन्युअल तरीके से सेट करने के लिए कंट्रोल मिलते हैं.

सिस्टम > तारीख और समय टाइम ज़ोन सेट करने के लिए, जगह की जानकारी का इस्तेमाल करना मौजूदा उपयोगकर्ता

टॉगल.

यह सुविधा, Android 12 के बाद के वर्शन वाले डिवाइसों पर उपलब्ध है. यह टॉगल सिर्फ़ तब दिखता है, जब डिवाइस पर जगह के टाइम ज़ोन का पता लगाने की सुविधा काम करती हो.

Android 14 में किए गए बदलावों के बारे में जानने के लिए, ऐसे डिवाइस जिन पर सिर्फ़ जगह के टाइम ज़ोन का पता लगाने की सुविधा काम करती है लेख पढ़ें.

जगह की जानकारी जगह की जानकारी की सुविधा का इस्तेमाल करें मौजूदा उपयोगकर्ता

टॉगल.

डिवाइस की जगह की जानकारी का इस्तेमाल करने की अनुमति देता है या उसे रोकता है. यह वैल्यू तब काम की होती है, जब डिवाइस पर जगह के समय क्षेत्र की पहचान करने की सुविधा काम करती हो.

उपयोगकर्ता की चुनी गई सेटिंग के हिसाब से, टाइम ज़ोन का पता लगाने के लिए डिवाइस के व्यवहार की खास जानकारी यहां दी गई है:

  • [तारीख और समय] टाइम ज़ोन अपने-आप सेट होने की सुविधा: बंद है

    • उपयोगकर्ता को मैन्युअल तरीके से टाइम ज़ोन चुनना होगा.
  • [तारीख और समय] टाइम ज़ोन अपने-आप सेट हो जाए: चालू है

    • [जगह की जानकारी] जगह की जानकारी का इस्तेमाल करें: बंद है

      • टाइम ज़ोन का पता लगाने के लिए, टेलीफ़ोन सिग्नल का इस्तेमाल किया जाता है.
    • [जगह की जानकारी] जगह की जानकारी का इस्तेमाल करें: चालू है

      • [तारीख और समय] टाइम ज़ोन सेट करने के लिए, जगह की जानकारी का इस्तेमाल करें: चालू है

        • टाइम ज़ोन का पता लगाने के लिए, जगह की जानकारी का इस्तेमाल किया जाता है.
      • [तारीख और समय] टाइम ज़ोन सेट करने के लिए, जगह की जानकारी का इस्तेमाल करें: बंद है

        • टाइम ज़ोन का पता लगाने के लिए, टेलीफ़ोन सिग्नल का इस्तेमाल किया जाता है.

एक से ज़्यादा उपयोगकर्ताओं के लिए डिवाइस

इसमें शामिल कई सेटिंग, मौजूदा उपयोगकर्ता के दायरे में होती हैं. इसलिए, जब एक से ज़्यादा उपयोगकर्ताओं वाले Android डिवाइस पर मौजूदा उपयोगकर्ता बदलता है, तो डिवाइस के टाइम ज़ोन का पता लगाने का तरीका बदल सकता है.

टाइम ज़ोन सेट करने के लिए जगह की जानकारी का इस्तेमाल करें टॉगल, मौजूदा उपयोगकर्ता के दायरे में आता है और डिवाइस की नीति से उस पर पाबंदी नहीं होती. इसका मतलब है कि उपयोगकर्ता इसकी वैल्यू कभी भी बदल सकते हैं. भले ही, टाइम ज़ोन अपने-आप सेट करें टॉगल बंद हो या डिवाइस नीति नियंत्रक ने समय या टाइम ज़ोन के अन्य कंट्रोल पर पाबंदी लगाई हो.

 ऐसे डिवाइस जिनमें सिर्फ़ जगह के टाइम ज़ोन का पता लगाने वाले एल्गोरिदम की सुविधा काम करती है

इस सेक्शन में, सिर्फ़ जगह की जानकारी के एल्गोरिदम के साथ काम करने वाले डिवाइसों के व्यवहार के बारे में बताया गया है.

  • Android 14 और उसके बाद के वर्शन

    • AOSP Settings ऐप्लिकेशन में, उपयोगकर्ताओं को जगह की जानकारी का इस्तेमाल करें विकल्प नहीं दिखता. साथ ही, डिवाइस ऐसा व्यवहार करता है जैसे जगह की जानकारी का इस्तेमाल करें विकल्प चालू हो.
    • उपयोगकर्ता के स्कोप वाली SettingsProvider सेटिंगlocation_time_zone_detection_enabled की वैल्यू को अनदेखा कर दिया जाता है. यह वैल्यू, दूसरे तरह के डिवाइसों पर उपयोगकर्ता की प्राथमिकता को रिकॉर्ड करती है.
  • Android 12 या Android 13

    • AOSP Settings ऐप्लिकेशन में, उपयोगकर्ताओं को जगह की जानकारी का इस्तेमाल करें विकल्प दिखता है. साथ ही, उपयोगकर्ता इस विकल्प को बंद कर सकते हैं. अगर यह विकल्प बंद है, तो डिवाइस पर टाइम ज़ोन की पहचान अपने-आप नहीं होगी.

अपने-आप पहचान करने की सुविधा को चालू या बंद करने पर क्या होता है

जब उपयोगकर्ता, टाइम ज़ोन का पता लगाने की सुविधा को मैन्युअल से अपने-आप पर स्विच करता है, तो हो सकता है कि 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 सेवा को जगह की जानकारी के एल्गोरिदम के सुझाव सबमिट करने वाला कोड होता है. ज़्यादा जानकारी के लिए, जगह के टाइम ज़ोन का पता लगाना लेख पढ़ें.

सुविधा को अपनाने से जुड़ी बातें

इस सेक्शन में, जगह के टाइम ज़ोन का पता लगाने की सुविधा के बारे में बताया गया है. इससे डिवाइस बनाने वाली कंपनी को यह तय करने में मदद मिलती है कि डिवाइस में यह सुविधा शामिल करनी है या नहीं.

टेलीफ़ोन और जगह की जानकारी का पता लगाने की सुविधा की तुलना करना

यहां दी गई टेबल में, टाइम ज़ोन का पता लगाने के लिए, टेलीफ़ोन सिग्नल के बजाय जगह की जानकारी का इस्तेमाल करने के फ़ायदों और नुकसानों की तुलना की गई है.

टेलीफ़ोन कॉल की पहचान करना जगह की जानकारी का पता लगाना
सही जवाब यह देश के हिसाब से अलग-अलग होता है.

यह एमसीसी, एनआईटीज़ की सटीक जानकारी, और उपलब्धता पर निर्भर करता है.
यह सुविधा के कॉन्फ़िगरेशन या प्लग-इन कॉम्पोनेंट पर निर्भर करता है.

आम तौर पर, सटीक होने की डिग्री इन बातों पर निर्भर करती है:
  • जगह की जानकारी देने वाली सेवा देने वाली कंपनी की सटीक और नियमित जानकारी.
  • टाइम ज़ोन मैप के डेटा की क्वालिटी.
अपडेट करने की सुविधा टेलीफ़ोन कॉल का पता लगाने की सुविधा, अपडेट किए जा सकने वाले टाइमज़ोन डेटा मॉड्यूल (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 पर सेट किया जाता है. समय का अपने-आप पता चलने की सुविधा को डिफ़ॉल्ट रूप से बंद करने के लिए, frameworks/base/packages/SettingsProvider/res/values/defaults.xml में बताई गई def_auto_time_zone की वैल्यू को false पर सेट करें.

किसी दूसरे डिवाइस से बैकअप को वापस लाने पर, फ़्रेमवर्क डिफ़ॉल्ट रूप से auto_time_zone सेटिंग की वैल्यू अपडेट कर देता है. अगर आपको यह पक्का करना है कि इस सेटिंग को बैकअप से वापस नहीं लाया जाए, तो frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml में बताए गए restore_blocked_global_settings कलेक्शन में auto_time_zone शामिल करें.

टाइम ज़ोन की डीबगिंग और जांच करना

इस सेक्शन में, 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 के मौजूदा एल्गोरिदम को समझने और उस पर असर डालने के लिए, इनमें से कोई एक विकल्प इस्तेमाल करें:

  • सेटिंग यूज़र इंटरफ़ेस (यूआई) की मदद से, विज़ुअल तौर पर देखें. ज़्यादा जानकारी के लिए, टाइम ज़ोन की सेटिंग देखें.
  • 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 की मौजूदगी के आधार पर, असल स्थिति है.
mAutoDetectionEnabled टाइम ज़ोन की अपने-आप पहचान करने की सुविधा चालू है या नहीं.
mLocationEnabled जगह की जानकारी का मुख्य टॉगल.
mGeoDetectionEnabled एल्गोरिदम स्विच: false, टेलीफ़ोन एल्गोरिदम को दिखाता है और true, जगह की जानकारी के एल्गोरिदम को दिखाता है.

सुझाव के इतिहास की जानकारी से पता चलता है कि सेटिंग (मैन्युअल) के ज़रिए और टेलीफ़ोनी और जगह की जानकारी के एल्गोरिदम से कौनसे सुझाव दिए गए हैं.