समय अवलोकन

यह पेज बताता है कि Android पर समय और समय क्षेत्र की पहचान कैसे काम करती है। इसमें शामिल है कि कैसे Android स्वचालित रूप से समय और समय क्षेत्र, डिवाइस निर्माताओं के लिए कॉन्फ़िगरेशन विकल्प और परीक्षण जानकारी का पता लगाता है।

समय और समय क्षेत्र का अवलोकन

स्टेटस बार जैसे स्थानों में प्रदर्शन के लिए उपयोगकर्ता का स्थानीय समय निर्धारित करने के लिए, एंड्रॉइड दो संबंधित लेकिन स्वतंत्र राज्यों का ट्रैक रखता है:

  • वर्तमान यूनिक्स युग का समय
  • वर्तमान समय क्षेत्र

वर्तमान यूनिक्स युग समय और वर्तमान समय क्षेत्र डिवाइस-व्यापी राज्य हैं, जिसका अर्थ है कि वे डिवाइस के सभी उपयोगकर्ताओं द्वारा साझा किए जाते हैं।

वर्तमान यूनिक्स युग का समय निश्चित मान नहीं है। यह समय बीतने को प्रतिबिंबित करने के लिए स्वचालित रूप से अद्यतन होता है। समय के सामान्य बीतने के अलावा, डिवाइस के वर्तमान यूनिक्स युग के समय को समायोजित किया जाता है यदि यह गलत पाया जाता है, उदाहरण के लिए, किसी डिवाइस के पावर खोने के बाद।

वर्तमान समय क्षेत्र वर्तमान यूनिक्स युग के समय को स्थानीय समय में बदलने के लिए किए जाने वाले समायोजन को निर्धारित करता है। उदाहरण के लिए, लॉस एंजिल्स में गर्मियों के दौरान, डिवाइस वर्तमान यूनिक्स युग के समय से 7 घंटे घटाता है, और सर्दियों में यह 8 घंटे घटाता है।

इन स्थानीय समय गणनाओं का समर्थन करने के लिए, सभी Android उपकरणों में सभी वैश्विक समय क्षेत्र नियमों का एक डेटाबेस होता है । समय क्षेत्र नियमों के बारे में अधिक जानकारी के लिए समय क्षेत्र नियम देखें।

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

AOSP उपयोगकर्ताओं को स्वतंत्र रूप से नियंत्रित करने की अनुमति देता है कि क्या उनके लिए समय और समय क्षेत्र स्वचालित रूप से निम्नलिखित तंत्रों के माध्यम से सेट किया गया है।

  • स्वचालित समय का पता लगाना: सुनिश्चित करता है कि डिवाइस में सही वर्तमान यूनिक्स युग समय है।
  • स्वचालित समय क्षेत्र का पता लगाना: सुनिश्चित करता है कि डिवाइस में सही वर्तमान समय क्षेत्र है।

स्वचालित समय का पता लगाना

यह अनुभाग time_detector सेवा का एक सिंहावलोकन प्रदान करता है जो स्वचालित समय पहचान, उपयोगकर्ता नियंत्रण, कॉन्फ़िगरेशन विकल्प और परीक्षण विवरण प्रबंधित करता है।

टाइम_डिटेक्टर सेवा

Android 10 या उच्चतर पर चलने वाले उपकरणों पर मौजूद time_detector सेवा, स्वचालित समय का पता लगाने का प्रबंधन करती है। स्वचालित समय का पता लगाने के सक्षम होने पर यह डिवाइस के वर्तमान यूनिक्स युग के समय को आवश्यकतानुसार समायोजित करता है।

time_detector सेवा हमेशा दो अवस्थाओं में से एक में होती है: अनिश्चित या निश्चित । सेवा की निश्चित या अनिश्चित स्थिति समय के सुझावों से निर्धारित होती है जो इसे विभिन्न स्रोतों से प्राप्त होती है।

जब time_detector सेवा निश्चित होती है, जिसका अर्थ है कि उसे यूनिक्स युग समय की जानकारी के साथ एक सुझाव प्राप्त हुआ है, तो यह वर्तमान यूनिक्स युग समय को ओवरराइड करता है यदि समय सुझाव वर्तमान यूनिक्स युग समय से अलग है।

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

वर्तमान यूनिक्स युग के समय को स्वचालित रूप से स्थापित करने के लिए, एक उपकरण में विभिन्न स्रोत होते हैं जिनका वह उपयोग कर सकता है। इस दस्तावेज़ में इन्हें मूल कहा जाता है। time_detector सेवा सुझावों के क्रम को उनके मूल के आधार पर अलग मानती है।

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

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

  • यूनिक्स युग समय यूटीसी समय से एक सूक्ष्म रूप से भिन्न टाइमकीपिंग प्रणाली है। दोनों के बीच रूपांतरण के लिए इस बात का ज्ञान होना आवश्यक है कि लीप सेकंड कब होते हैं और उन्हें उत्पत्ति द्वारा कैसे नियंत्रित किया जाता है।
  • उत्पत्ति केवल निश्चित समय पर या कुछ विशेष परिस्थितियों में ही उपलब्ध हो सकती है। उदाहरण के लिए, यदि मूल को नेटवर्क कनेक्टिविटी की आवश्यकता है, तो यह केवल तभी उपलब्ध हो सकता है जब डिवाइस इंटरनेट से जुड़ा हो।
  • मूल गलत या गलत हो सकता है, या त्रुटियां हो सकती हैं। उदाहरण के लिए, यदि कोई टेलीफ़ोनी सेल टावर "सार्वभौमिक समय" को सही ढंग से ट्रैक नहीं कर रहा है, तो टेलीफ़ोनी मूल गलत समय सुझाव प्रदान कर सकता है।
  • यूनिक्स युग का समय प्राप्त करते समय गलतियाँ हो सकती हैं। उदाहरण के लिए, नेटवर्क विलंब, बफरिंग, या प्रक्रिया शेड्यूलिंग के कारण यूनिक्स युग का समय गलत हो सकता है।
  • सुझाव प्राप्त होने के बाद से बीता हुआ समय के लिए सुझाव को समायोजित करने के लिए उपयोग की जाने वाली संदर्भ घड़ी गलत हो सकती है।

एओएसपी में डिफ़ॉल्ट रूप से उपयोग के लिए कॉन्फ़िगर किए गए दो मुख्य समय पहचान मूल हैं:

  • टेलीफोनी: नेटवर्क पहचान और समय क्षेत्र (एनआईटीजेड) टेलीफोनी संकेतों का उपयोग करता है।
  • नेटवर्क: नेटवर्क टाइम प्रोटोकॉल (NTP) टाइम सर्वर का उपयोग करता है।

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

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

  • GNSS : GNSS स्रोत से समय प्राप्त करने के लिए GPS स्थान प्रदाता का उपयोग करता है।
  • बाहरी : सामान्य उत्पत्ति जो डिवाइस निर्माताओं को यूनिक्स युग समय के अपने स्रोत को एकीकृत करने की अनुमति देती है।

समय सैट करना

उपयोगकर्ता एओएसपी सेटिंग्स ऐप में सिस्टम> दिनांक और समय में स्वचालित समय का पता लगाने को सक्षम कर सकते हैं।

सेटिंग्स में स्वचालित समय का पता लगाना

चित्रा 1. सेटिंग्स में स्वचालित समय का पता लगाना।

निम्न तालिका एओएसपी सेटिंग्स ऐप में समय का पता लगाने के लिए उपयोगकर्ता नियंत्रण का वर्णन करती है।

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

एओएसपी सेटिंग्स स्थान एओएसपी सेटिंग्स का नाम दायरा व्‍यवहार
सिस्टम> दिनांक और समय स्वचालित रूप से समय निर्धारित करें* सभी उपयोगकर्ता

एक टॉगल।

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

जब उपयोगकर्ता मैन्युअल रूप से समय दर्ज करता है, तो वे अपना स्थानीय समय दर्ज करते हैं, यूनिक्स युग समय नहीं। यूनिक्स युग के समय को प्राप्त करने के लिए वर्तमान समय क्षेत्र का उपयोग करके वर्तमान यूनिक्स युग समय की गणना की जाती है।

विन्यास

डिवाइस निर्माता 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>

एंड्रॉइड 12 में, नेटवर्क और टेलीफोनी सुझावों को डिफ़ॉल्ट रूप से उपयोग करने के लिए मूल के रूप में कॉन्फ़िगर किया गया है। टेलीफोनी समय सुझावों से ऊपर नेटवर्क समय सुझावों को प्राथमिकता दी जाती है। डिवाइस निर्माता एंड्रॉइड 11 या उससे कम के व्यवहार पर वापस जाने के लिए उत्पत्ति के क्रम को बदल सकते हैं, जहां टेलीफोनी को उच्च प्राथमिकता दी जाती है।

डिफ़ॉल्ट रूप से, यदि सर्वोच्च प्राथमिकता वाला मान्य सुझाव कुछ सेकंड के भीतर डिवाइस के वर्तमान सिस्टम घड़ी समय से मेल खाता है, तो डिवाइस का समय नहीं बदला जाएगा। यह ACTION_TIME_CHANGED आशय को सुनने वाले इंस्टॉल किए गए ऐप्स के लिए कार्य बनाने से बचने के लिए है।

अनुमत मूल मान हैं:

कम समय सीमा

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

सहायता आउटपुट डिवाइस_कॉन्फ़िग सेवा गुणों का भी वर्णन करता है जिनका उपयोग परीक्षण या उत्पादन में time_detector के व्यवहार को प्रभावित करने के लिए किया जा सकता है। विवरण के लिए, device_config सेवा का उपयोग करके डिवाइस को कॉन्फ़िगर करना देखें।

स्वचालित समय का पता लगाने की पुष्टि करने के लिए, परीक्षकों को पता होना चाहिए कि time_detector सेवा किस मूल का उपयोग कर रही है। निम्नलिखित adb shell cmd time_zone_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 सेवा ने डिवाइस के वर्तमान यूनिक्स युग के समय को बदल दिया है।

सुझाव इतिहास की जानकारी इंगित करती है कि प्रत्येक मूल द्वारा क्या सुझाव दिए गए हैं।

स्वचालित समय क्षेत्र का पता लगाना

यह खंड 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 सेवा की निश्चित या अनिश्चित स्थिति समय क्षेत्र सुझावों द्वारा निर्धारित की जाती है जो एक मूल द्वारा भेजे जाते हैं।

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

  • टाइप = "अनिश्चित", ज़ोनआईड्स = []

    • मूल को पता नहीं है कि समय क्षेत्र क्या है।
  • प्रकार = "निश्चित", क्षेत्र आईडी = ["यूरोप/लंदन"]

    • मूल निश्चित है कि क्षेत्र "यूरोप/लंदन" है।
  • टाइप = "निश्चित", ज़ोनआईड्स = []

    • उत्पत्ति निश्चित है, लेकिन वर्तमान स्थान से संबद्ध कोई ज़ोन आईडी नहीं है।
  • प्रकार = "निश्चित", क्षेत्र आईडी = ["अमेरिका/डेनवर", "अमेरिका/फीनिक्स"]

    • मूल निश्चित है कि उत्तर दो क्षेत्रों में से एक है, लेकिन "अमेरिका/डेनवर" और "अमेरिका/फीनिक्स" के बीच चयन नहीं कर सकता।

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

टेलीफ़ोनी फ़ॉलबैक मोड उन उपकरणों पर लागू होता है जहां टेलीफ़ोनी और स्थान पहचान दोनों समर्थित हैं, और जहां उपयोगकर्ता ने समय क्षेत्र सेटिंग में समय क्षेत्र सेट करने के लिए स्थान का उपयोग करना सक्षम किया है। जब कोई डिवाइस रीबूट होता है, और जब हवाई जहाज मोड अक्षम होता है तो मोड स्वचालित रूप से सक्षम होता है। जब टेलीफ़ोनी फ़ॉलबैक मोड में time_zone_detector सेवा टेलीफ़ोनी सुझावों का उपयोग करती है जैसे कि स्थान का पता लगाने को तब तक अक्षम किया जाता है जब तक कि स्थान मूल एक निश्चित सुझाव नहीं देता। एक निश्चित सुझाव प्राप्त करने के बाद, टेलीफोनी फ़ॉलबैक मोड अक्षम हो जाता है और स्थान सुझावों का विशेष रूप से उपयोग किया जाता है।

टेलीफ़ोनी फ़ॉलबैक मोड के लिए कॉन्फ़िगरेशन विवरण के लिए, समय क्षेत्र पहचान कॉन्फ़िगरेशन देखें।

समय क्षेत्र सेटिंग

उपयोगकर्ता एओएसपी सेटिंग्स ऐप में स्वचालित समय क्षेत्र पहचान के लिए सेटिंग्स को सक्षम और कॉन्फ़िगर कर सकते हैं।

सेटिंग्स में स्वचालित समय क्षेत्र का पता लगाना

चित्रा 2. सेटिंग्स में स्वचालित समय क्षेत्र का पता लगाना।

निम्न तालिका एओएसपी सेटिंग्स ऐप में समय क्षेत्र का पता लगाने के लिए उपयोगकर्ता नियंत्रण का वर्णन करती है।

*एंड्रॉइड 11 और उसके बाद के संस्करण पर, इस सेटिंग को नेटवर्क-प्रदत्त समय क्षेत्र का उपयोग करें लेबल किया गया है

एओएसपी सेटिंग्स स्थान एओएसपी सेटिंग्स का नाम दायरा व्‍यवहार
सिस्टम> दिनांक और समय समय क्षेत्र स्वचालित रूप से सेट करें* सभी उपयोगकर्ता

एक टॉगल।

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

सिस्टम> दिनांक और समय समय क्षेत्र निर्धारित करने के लिए स्थान का उपयोग करें तात्कालिक प्रयोगकर्ता

एक टॉगल।

Android 12 से उपलब्ध है। यह टॉगल केवल तभी प्रदर्शित होता है जब डिवाइस पर स्थान समय क्षेत्र का पता लगाने का समर्थन किया जाता है।

स्थान स्थान का प्रयोग करें तात्कालिक प्रयोगकर्ता

एक टॉगल।

आमतौर पर डिवाइस के स्थान के उपयोग की अनुमति देता है या रोकता है। यदि डिवाइस पर स्थान समय क्षेत्र का पता लगाना समर्थित है तो मान प्रासंगिक है।

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

  • [दिनांक और समय] स्वचालित रूप से समय क्षेत्र सेट करें: बंद

    • उपयोगकर्ता को मैन्युअल रूप से समय क्षेत्र का चयन करना होगा।
  • [दिनांक और समय] स्वचालित रूप से समय क्षेत्र सेट करें: चालू

    • [स्थान] स्थान का उपयोग करें: बंद

      • समय क्षेत्र का पता लगाने के लिए टेलीफोनी संकेतों का उपयोग किया जाता है। (नीचे दिए गए नोट देखें।)
    • [स्थान] स्थान का उपयोग करें: ON

      • [दिनांक और समय] समय क्षेत्र निर्धारित करने के लिए स्थान का उपयोग करें: चालू

        • स्थान का उपयोग समय क्षेत्र का पता लगाने के लिए किया जाता है।
      • [दिनांक और समय] समय क्षेत्र निर्धारित करने के लिए स्थान का उपयोग करें: बंद

        • समय क्षेत्र का पता लगाने के लिए टेलीफोनी संकेतों का उपयोग किया जाता है। (नीचे दिए गए नोट देखें।)

एकाधिक उपयोगकर्ता डिवाइस

चूंकि इसमें शामिल कई सेटिंग्स वर्तमान उपयोगकर्ता के दायरे में हैं, एक डिवाइस का समय क्षेत्र पहचान व्यवहार बदल सकता है जब वर्तमान उपयोगकर्ता एक बहु-उपयोगकर्ता एंड्रॉइड डिवाइस पर बदलता है।

समय क्षेत्र टॉगल सेट करने के लिए स्थान का उपयोग करें वर्तमान उपयोगकर्ता तक सीमित है और डिवाइस नीति द्वारा प्रतिबंधित नहीं है, जिसका अर्थ है कि उपयोगकर्ता हमेशा अपना मान बदल सकते हैं, भले ही सेट समय क्षेत्र स्वचालित रूप से टॉगल बंद हो या अन्य समय या समय क्षेत्र नियंत्रण डिवाइस नीति नियंत्रक द्वारा प्रतिबंधित हैं।

स्वचालित पहचान में और से बदलते समय व्यवहार

जब उपयोगकर्ता समय क्षेत्र पहचान को मैन्युअल से स्वचालित में बदलता है, time_zone_detector पहले से ही वर्तमान समय क्षेत्र के बारे में निश्चित हो सकता है। यदि ऐसा है, तो चूंकि उपयोगकर्ता स्वचालित पहचान को सक्षम करता है, इसलिए डिवाइस का समय क्षेत्र उसी समय बदला जा सकता है ताकि time_zone_detector सेवा की राय से मिलान किया जा सके।

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

टेलीफोनी समय क्षेत्र का पता लगाना

टेलीफोनी समय क्षेत्र का पता लगाना वर्तमान समय क्षेत्र को निर्धारित करने के लिए टेलीफोनी संकेतों का उपयोग करता है। अधिक जानकारी के लिए, टेलीफ़ोनी टाइम ज़ोन डिटेक्शन देखें।

स्थान समय क्षेत्र का पता लगाना

स्थान समय क्षेत्र का पता लगाना Android 12 या उच्चतर पर उपलब्ध है। यह एक वैकल्पिक स्वचालित समय क्षेत्र पहचान सुविधा है जो उपकरणों को वर्तमान समय क्षेत्र निर्धारित करने के लिए अपने स्थान का उपयोग करने में सक्षम बनाती है।

एंड्रॉइड 12 में पेश की गई location_time_zone_manager सेवा, सिस्टम सर्वर में चलती है और इसमें time_zone_detector सेवा को स्थान मूल सुझाव सबमिट करने के लिए जिम्मेदार कोड होता है। अधिक जानकारी के लिए, स्थान समय क्षेत्र का पता लगाना देखें।

फ़ीचर अपनाने के विचार

यह खंड डिवाइस निर्माता को यह निर्धारित करने में मदद करने के लिए स्थान समय क्षेत्र पहचान सुविधा के पहलुओं का वर्णन करता है कि डिवाइस पर सुविधा को अपनाना है या नहीं।

टेलीफोनी और लोकेशन डिटेक्शन की तुलना करना

निम्न तालिका समय क्षेत्र का पता लगाने के लिए टेलीफोनी संकेतों के बजाय स्थान का उपयोग करने के फायदे और नुकसान की तुलना प्रदान करती है।

टेलीफोनी का पता लगाना स्थान का पता लगाना
यथार्थता देश के अनुसार बदलता रहता है।

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

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

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

नोट: टाइम ज़ोन मैप डेटा टाइम ज़ोन डेटा मॉड्यूल में शामिल नहीं है जिसका उपयोग एंड्रॉइड की TZDB की कॉपी और अन्य टाइम ज़ोन जानकारी को अपडेट करने के लिए किया जाता है।

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

उपयोगकर्ता का पसंदीदा समय क्षेत्र आमतौर पर उनकी भौगोलिक स्थिति से निर्धारित होता है। स्थान संवेदनशील डेटा है। उपयोगकर्ता समय क्षेत्र का पता लगाने के हिस्से के रूप में साझा किए जा रहे अपने स्थान के ज्ञान के बारे में चिंतित हो सकते हैं। समय क्षेत्र का पता लगाने से असंबंधित, किसी डिवाइस पर चलने वाले सभी ऐप्स एंड्रॉइड अनुमति की आवश्यकता के बिना डिवाइस के वर्तमान समय क्षेत्र को पढ़ सकते हैं, और ऐप्स इस जानकारी से डिवाइस के स्थान का एक सटीक अनुमान लगा सकते हैं।

अधिक विशेष रूप से, समय क्षेत्र का पता लगाना निष्क्रिय या सक्रिय माध्यमों से काम कर सकता है:

  • निष्क्रिय: डिवाइस के वातावरण में कुछ डिवाइस को उस वातावरण में उपयोग करने के लिए समय क्षेत्र बताता है।
  • सक्रिय: डिवाइस को अपने लिए समय क्षेत्र निर्धारित करना होता है और उपयोगकर्ताओं की गोपनीयता सेटिंग्स और उनकी सहमति के आधार पर, ऐसा करने के लिए डिवाइस का स्थान प्राप्त करता है। इसके बाद यह बाहरी सेवाओं के साथ अपना स्थान साझा कर सकता है। उपयोगकर्ता गोपनीयता और सहमति के विवरण के लिए नीचे दी गई चर्चा देखें।

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

सक्रिय पहचान, जैसे कि स्थान की उत्पत्ति के साथ, डिवाइस का स्थान निर्धारित करना शामिल है, जिससे उपयोगकर्ता सहमत नहीं होना चाहते हैं, और समय क्षेत्र आईडी निर्धारित करने के लिए स्थान को नेटवर्क पर भेजा जा सकता है।

समय क्षेत्र का पता लगाने के लिए उपयोगकर्ता गोपनीयता के लिए एंड्रॉइड का दृष्टिकोण उपयोगकर्ता को उन मूल को व्यक्तिगत रूप से अक्षम करने की क्षमता देता है जिनके सक्रिय होने की उम्मीद है। इसके अतिरिक्त, AOSP प्लेटफ़ॉर्म कोड सीधे स्थान के साथ ही डील नहीं करता है: स्थान का पता लगाना और समय क्षेत्र आईडी के लिए स्थान का मानचित्रण करना डिवाइस निर्माताओं द्वारा कॉन्फ़िगर किए गए प्लग-इन घटकों पर छोड़ दिया जाता है।

उपयोगकर्ता गोपनीयता सुविधाओं के बारे में अधिक जानकारी के लिए, स्थान समय क्षेत्र का पता लगाना देखें।

विन्यास

डिवाइस निर्माता अपना व्यवहार बदलने के लिए time_zone_detector सेवा को कॉन्फ़िगर कर सकते हैं। यह खंड time_zone_detector सेवा के सामान्य व्यवहार के लिए कॉन्फ़िगरेशन विकल्पों का वर्णन करता है। टेलीफ़ोनी और टाइम ज़ोन डिटेक्शन मूल के कॉन्फ़िगरेशन विवरण के लिए, टेलीफ़ोनी टाइम ज़ोन डिटेक्शन और लोकेशन टाइम ज़ोन डिटेक्शन देखें।

आधार AOSP कॉन्फ़िगरेशन frameworks/base/core/res/res/values/config.xml पर है।

कॉन्फ़िगरेशन कुंजी एओएसपी मूल्य विवरण
config_supportTelephonyTimeZoneFallback true true होने पर, `time_zone_detector` टेलीफ़ोनी फ़ॉलबैक मोड का उपयोग करेगा। यह Android 13 के बाद से मौजूद है।

समय क्षेत्र डिबगिंग और परीक्षण

यह खंड time_zone_detector सेवा और अन्य घटकों के व्यवहार को डिबग और परीक्षण करने के तरीके के बारे में जानकारी प्रदान करता है जो सभी मूल द्वारा साझा किए जाते हैं।

Device_config सेवा का उपयोग करके डिवाइस को कॉन्फ़िगर करना

device_config सेवा एंड्रॉइड पर उपयोग किया जाने वाला एक तंत्र है जो उन मानों का उपयोग करके परिवर्तनीय व्यवहार को कॉन्फ़िगर करने के लिए उपयोग किया जाता है जो आमतौर पर मालिकाना (गैर-एओएसपी) कोड द्वारा रिमोट सर्वर से खींचे जाते हैं। परीक्षण के लिए device_config मानों का उपयोग करते समय, विशेष रूप से लंबे समय तक चलने वाले मैन्युअल परीक्षणों के दौरान, डिवाइस फ़्लैग को सिंक्रनाइज़ कर सकता है, जो फ़्लैग को रीसेट कर देगा और परीक्षण के लिए सेट किए गए मानों को साफ़ कर देगा।

एंड्रॉइड 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 के माध्यम से दृष्टिगत रूप से जांचें। अधिक जानकारी के लिए, समय क्षेत्र सेटिंग्स देखें।
  • एडीबी के माध्यम से कमांड लाइन का प्रयोग करें:

    • 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 मूल स्विच: `झूठा` टेलीफ़ोनी मूल को इंगित करता है, और `सत्य` स्थान मूल को इंगित करता है।

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