समय अवलोकन

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

समय सैट करना

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

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

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

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

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

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

एक टॉगल.

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

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

विन्यास

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

मूल प्राथमिकता

एंड्रॉइड 12 से, डिवाइस निर्माता core/res/res/values/config.xml कॉन्फ़िगरेशन फ़ाइल को यह निर्दिष्ट करने के लिए बदल सकते हैं कि स्वचालित समय पहचान में किस समय की उत्पत्ति को शामिल करना है, और प्राथमिकता जिसमें time_detector इन उत्पत्ति पर विचार करता है।

एंड्रॉइड 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 इरादे को सुनते हैं।

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

अनुमत समय सीमा

एंड्रॉइड 14 time_detector सेवा द्वारा प्राप्त समय सुझावों के लिए ऊपरी समय सीमा का परिचय देता है। यदि डिवाइस 32-बिट प्रक्रियाओं का समर्थन करता है, तो फ्रेमवर्क डिवाइस को समय सुझाव का उपयोग करने से रोकने के लिए ऊपरी समय सीमा निर्धारित करता है जो Y2038 समस्या को ट्रिगर कर सकता है।

एंड्रॉइड 12 ने कम समय सीमा पेश की है जिसका उपयोग time_detector सेवा द्वारा प्राप्त समय सुझावों को मान्य करने के लिए किया जाता है। स्वचालित सुझावों के लिए उपयोग किया जाने वाला निम्न समयबद्ध मान बिल्ड टाइमस्टैम्प से निर्धारित किया जाता है। यह इस सिद्धांत पर काम करता है कि डिवाइस की सिस्टम छवि बनने से पहले कोई वैध समय नहीं हो सकता। यदि कोई समय सुझाव निम्न समय सीमा से पहले है, तो time_detector सेवा सुझाव को खारिज कर देती है क्योंकि बिल्ड टाइमस्टैम्प सही होने पर यह मान्य नहीं हो सकता है।

एंड्रॉइड 11 या उससे पहले के संस्करण चलाने वाले उपकरणों के लिए, time_detector सेवा आने वाले यूनिक्स युग समय सुझावों को मान्य नहीं करती है।

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

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

टाइम_डिटेक्टर सेवा के साथ इंटरैक्ट करना

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

adb shell cmd time_detector dump

डिबगिंग और समय क्षेत्र का पता लगाने के परीक्षण के लिए अतिरिक्त कमांड देखने के लिए, इसका उपयोग करें:

adb shell cmd time_detector help

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

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

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

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

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

टाइम_ज़ोन_डिटेक्टर सेवा

एंड्रॉइड 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 की संभावित स्थितियों से बारीकी से मेल खाते हैं: निश्चित और अनिश्चित । सुझाव प्रकारों के उदाहरण निम्नलिखित हैं:

  • प्रकार = uncertain , zoneIds = []

    • एल्गोरिथम नहीं जानता कि समय क्षेत्र क्या है।
  • प्रकार = certain , zoneIds = ["Europe/London"]

    • एल्गोरिथम निश्चित है कि क्षेत्र यूरोप/लंदन है।
  • प्रकार = certain , zoneIds = [] `

    • एल्गोरिदम निश्चित है, लेकिन वर्तमान स्थान के साथ कोई ज़ोन आईडी संबद्ध नहीं है।
  • प्रकार = certain , zoneIds = ["America/Denver", "America/Phoenix"]

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

time_zone_detector सेवा सुझावों के अनुक्रमों को उनके एल्गोरिदम के आधार पर अलग मानती है। एल्गोरिदम के आधार पर, सुझावों में मेटाडेटा भी शामिल हो सकता है जो इंगित करता है कि एल्गोरिदम कितना निश्चित है।

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

एंड्रॉइड समय क्षेत्र का पता लगाने के लिए दो एल्गोरिदम का समर्थन करता है:

  • टेलीफ़ोनी
  • जगह

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

एक टॉगल.

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

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

एक टॉगल.

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

14 में पेश किए गए परिवर्तनों के लिए, वे उपकरण देखें जो केवल स्थान समय क्षेत्र का पता लगाने का समर्थन करते हैं

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

एक टॉगल.

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

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

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

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

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

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

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

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

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

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

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

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

वे उपकरण जो केवल स्थान समय क्षेत्र पहचान एल्गोरिदम का समर्थन करते हैं

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

  • एंड्रॉइड 14 और उच्चतर

    • AOSP सेटिंग्स ऐप में उपयोगकर्ताओं को स्थान का उपयोग करें विकल्प नहीं दिखाया जाता है और डिवाइस ऐसा व्यवहार करता है मानो स्थान का उपयोग करें विकल्प सक्षम है।
    • उपयोगकर्ता-स्कोप्ड SettingsProvider सेटिंग location_time_zone_detection_enabled का मान अनदेखा कर दिया गया है। यह मान अन्य प्रकार के उपकरणों पर उपयोगकर्ता की प्राथमिकता को रिकॉर्ड करता है।
  • एंड्रॉइड 12 या एंड्रॉइड 13

    • स्थान का उपयोग करें विकल्प उपयोगकर्ताओं को AOSP सेटिंग्स ऐप में दिखाई देता है और उपयोगकर्ता विकल्प को अक्षम कर सकते हैं। यदि विकल्प अक्षम है, तो डिवाइस स्वचालित रूप से समय क्षेत्र का पता नहीं लगाएगा।

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

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

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

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

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

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

निष्क्रिय पहचान, जैसे कि टेलीफ़ोनी एल्गोरिदम के साथ, उपयोगकर्ताओं के लिए कोई अतिरिक्त गोपनीयता निहितार्थ नहीं है।

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

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

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

विन्यास

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

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

कॉन्फ़िगरेशन कुंजी एओएसपी मान विवरण
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 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 सेवा के व्यवहार को प्रभावित करने के लिए किया जा सकता है। विवरण के लिए, डिवाइस_कॉन्फिग सेवा का उपयोग करके डिवाइस को कॉन्फ़िगर करना देखें।

समय क्षेत्र का पता लगाने को मान्य करने के लिए, परीक्षकों को पता होना चाहिए कि time_zone_detector किस एल्गोरिदम का उपयोग कर रहा है। time_zone_detector के वर्तमान एल्गोरिदम को समझने और प्रभावित करने के लिए, निम्नलिखित विकल्पों में से एक का उपयोग करें:

  • सेटिंग्स यूआई के माध्यम से दृष्टिगत रूप से जांचें। अधिक जानकारी के लिए, समय क्षेत्र सेटिंग देखें.
  • एडीबी के माध्यम से कमांड लाइन का उपयोग करें:

    • 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 स्थान एल्गोरिदम को इंगित करता है।

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