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

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

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

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

  • मौजूदा Unix epoch टाइम
  • मौजूदा टाइम ज़ोन

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

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

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

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

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

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

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

समय का अपने-आप पता लगाने की सुविधा

यह सेक्शन उस 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 सेवा, स्टेटफ़ुल है. इसका मतलब है कि इसमें हर ऑरिजिन से मिले सबसे हाल के सुझाव का रिकॉर्ड होता है. अगर किसी ऑरिजिन में, Unix epoch टाइम की हाल की जानकारी उपलब्ध है, तो time_detector के लिए नए सुझाव दिए जाते हैं. time_detector सेवा, नए और मौजूदा सुझावों की फिर से समीक्षा करती है. साथ ही, सुझाव मिलने पर डिवाइस की स्थिति को अपडेट करती है.

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

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

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

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

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

Android 12 और उसके बाद के वर्शन में, Android में नीचे दिए गए ऑरिजिन भी काम करते हैं, जो डिफ़ॉल्ट रूप से इस्तेमाल के लिए कॉन्फ़िगर नहीं किए गए हैं:

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

समय सेटिंग

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

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

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

नीचे दी गई टेबल में, एओएसपी सेटिंग ऐप्लिकेशन में समय का पता लगाने के लिए, उपयोगकर्ता के कंट्रोल के बारे में बताया गया है.

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

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

एक टॉगल.

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

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

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

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

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

Android 12 में, डिवाइस बनाने वाली कंपनियां core/res/res/values/config.xmlकॉन्फ़िगरेशन फ़ाइल में बदलाव कर सकती हैं. इससे, यह तय किया जा सकता है कि समय का पता अपने-आप लगाने की सुविधा में, समय की जानकारी देने वाले किन सोर्स को शामिल करना है. साथ ही, यह भी तय किया जा सकता है कि time_detectorइन सोर्स को किस प्राथमिकता के हिसाब से शामिल करना है.

Android 11 या इससे पहले के वर्शन वाले डिवाइसों के लिए, ऑरिजिन की प्राथमिकता ["telephony", "network"] पर हार्डकोड होती है. इसका मतलब है कि टेलीफ़ोन के सुझावों को नेटवर्क से जुड़े सुझावों के ऊपर प्राथमिकता दी जाती है.

डिफ़ॉल्ट एओएसपी कॉन्फ़िगरेशन कुछ इस तरह है:

<!-- 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 epoch टाइम सुझावों की पुष्टि नहीं करती.

टाइम डीबग करने और जांच करने में लगने वाला समय

इस सेक्शन में, सभी ऑरिजिन से शेयर की गई 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 की संभावित स्थितियों से काफ़ी हद तक मेल खाते हैं: कुछ तय और कुछ जानकारी नहीं है. यहां अलग-अलग तरह के सुझाव के उदाहरण दिए गए हैं:

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

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

टेलीफ़ोनी फ़ॉलबैक मोड

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

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

Android 14 और उसके बाद वाले वर्शन में, टेलीफ़ोनी फ़ॉलबैक को LTZP स्टेटस रिपोर्टिंग एपीआई की मदद से ट्रिगर किया जा सकता है. इसका मतलब है कि अगर LTZP से मिली जानकारी सटीक नहीं है और उसके एनवायरमेंट की वजह से जगह या टाइम ज़ोन का पता लगाने की उसकी क्षमता कम हो जाती है, तो टेलीफ़ोनी फ़ॉलबैक मोड ट्रिगर हो जाता है.

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

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

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

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

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

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

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

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

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

टॉगल.

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

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

एक टॉगल.

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

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

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

एक टॉगल.

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

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

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

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

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

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

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

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

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

कई उपयोगकर्ताओं के डिवाइस

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

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

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

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

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

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

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

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

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

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

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

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

जगह के समय क्षेत्र की पहचान करने की सुविधा

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

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

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

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

टेलीफ़ोनी और जगह की जानकारी की तुलना करना

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

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

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

आम तौर पर, चीज़ों में सुधार के लिए इन बातों का ध्यान रखा जाता है:
  • जगह की जानकारी देने वाली सेवा की सटीक जानकारी और नियमितता.
  • टाइम ज़ोन मैप के डेटा की क्वालिटी.
अपडेट होने की क्षमता Telephony की पहचान करने की सुविधा, अपडेट किए जा सकने वाले टाइम ज़ोन डेटा मॉड्यूल (com.android.tzdata APEX) में मौजूद फ़ाइलों पर निर्भर करती है. यह सुविधा के कॉन्फ़िगरेशन या प्लग-इन कॉम्पोनेंट पर निर्भर करता है.

डिवाइस को अपडेट किया जा सकता है या नहीं, यह आम तौर पर इस बात पर निर्भर करता है कि डिवाइस, सर्वर या क्लाइंट टाइम ज़ोन मैप डेटा का इस्तेमाल करता है या नहीं.

ध्यान दें: Android के TZDB और टाइम ज़ोन की अन्य जानकारी को अपडेट करने के लिए इस्तेमाल किए जाने वाले टाइम ज़ोन डेटा मॉड्यूल में, टाइम ज़ोन मैप का डेटा शामिल नहीं होता.

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

आम तौर पर, उपयोगकर्ता का पसंदीदा टाइम ज़ोन, उसकी भौगोलिक जगह के हिसाब से तय होता है. जगह की जानकारी संवेदनशील डेटा है. टाइम ज़ोन डिटेक्शन के तौर पर शेयर की गई अपनी जगह की जानकारी को लेकर, उपयोगकर्ताओं को चिंता हो सकती है. टाइम ज़ोन का पता लगाने की सुविधा से, डिवाइस पर चल रहे सभी ऐप्लिकेशन, Android की अनुमति के बिना डिवाइस के मौजूदा टाइम ज़ोन को पढ़ सकते हैं. साथ ही, ऐप्लिकेशन इस जानकारी से डिवाइस की जगह की सटीक जानकारी का अंदाज़ा लगा सकते हैं.

टाइम ज़ोन की पहचान करने की सुविधा, पैसिव या ऐक्टिव तरीकों से काम कर सकती है:

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

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

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

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

उपयोगकर्ता की निजता से जुड़ी सुविधाओं के बारे में ज़्यादा जानने के लिए, जगह के समय क्षेत्र का पता लगाना लेख पढ़ें.

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

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

बेस एओएसपी कॉन्फ़िगरेशन 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 पर बदली जा सकने वाली कार्रवाई को कॉन्फ़िगर करने का तरीका है. इसके लिए उन वैल्यू का इस्तेमाल किया जाता है जिन्हें आम तौर पर किसी रिमोट सर्वर से मालिकाना हक वाले (बिना एओएसपी) कोड के ज़रिए लिया जाता है. टेस्टिंग के लिए 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 सेवा के कॉन्फ़िगरेशन और स्थिति को देखने के लिए, इनका इस्तेमाल करें:

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, जगह की जानकारी के एल्गोरिदम को दिखाता है.

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