टाइम ज़ोन के विकल्प

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

चिप पर सिस्टम (SoC) में इस्तेमाल की जाने वाली सभी रीयल-टाइम घड़ियों में कुछ समय के बाद बदलाव होता है. यह बदलाव समय के साथ बढ़ता जाता है. अगर इसे ठीक नहीं किया जाता, तो इससे बड़ी गड़बड़ी हो सकती है. इसके अलावा, स्थानीय समय को सटीक तरीके से दिखाने की उम्मीदें ज़्यादा होती हैं. इसलिए, कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी) से सही ऑफ़सेट को ध्यान में रखना ज़रूरी है.

वाहन के इस्तेमाल की अनुमानित अवधि के दौरान, टाइम ज़ोन की जानकारी के साथ-साथ डेलाइट सेविंग टाइम (डीएसटी) लागू होने की जानकारी में बदलाव हो सकता है. उदाहरण के लिए, कई सालों तक डीएसटी लागू करने के बाद, ब्राज़ील ने 2019 में डीएसटी शेड्यूल शुरू न करने का फ़ैसला किया.

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

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

ध्यान दें: AAOS 10, Android 10 (और इसके बाद के वर्शन) की रिलीज़ में दिए गए, APEX पर आधारित मॉड्यूल अपडेट करने के तरीके के साथ काम नहीं करता.

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

कारों में टाइम (ज़ोन) की जानकारी देने वाले सोर्स

Android डिवाइस, सिस्टम लेवल पर Unix टाइम में समय को मैनेज करते हैं. इसके बाद, वे टाइम ज़ोन के हिसाब से ऑफ़सेट लागू करते हैं. इसके बाद, वे वैल्यू को स्थानीय समय में बदलकर उपयोगकर्ताओं को दिखाते हैं. मौजूदा उपयोगकर्ता के ज़ोन आईडी (इसे अक्सर ओल्सन आईडी कहा जाता है) को सेटिंग के तौर पर सेव किया जाता है. उदाहरण के लिए, Europe/London.

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

यह प्रोसेस मुश्किल हो सकती है. उपलब्ध जानकारी के आधार पर, जवाब का अनुमान लगाना मुश्किल हो सकता है. उदाहरण के लिए, अमेरिका/डेनवर टाइम ज़ोन में डीएसटी लागू होता है. हालांकि, गर्मियों के दौरान यह माउंटेन डेलाइट टाइम (एमडीटी) के हिसाब से काम करता है. वहीं, अमेरिका/फ़ीनिक्स टाइम ज़ोन में एमडीटी लागू रहता है.

सेल्युलर रेडियो

सिस्टम की जानकारी (एसआई), लॉन्ग-टर्म इवोल्यूशन (एलटीई) एयर इंटरफ़ेस का एक ज़रूरी पहलू है. इसे ब्रॉडकास्ट कंट्रोल चैनल (बीसीएच) पर बेस स्टेशन (बीएस) से ट्रांसमिट किया जाता है. 3GPP TS 36.331 में SystemInformationBlockType16 (SIB16) के बारे में बताया गया है. इसमें जीपीएस और कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी), स्थानीय समय के ऑफ़सेट, और डीएसटी की जानकारी शामिल होती है.

इसी तरह की सुविधा 2G और 3G में भी मिलती है. इनमें नेटवर्क की पहचान और टाइम ज़ोन (एनआईटीज़ेड) की जानकारी ब्रॉडकास्ट की जा सकती है. ज़्यादा जानकारी के लिए, 3GPP TS 22.042 देखें. सेल्युलर रेडियो के अन्य मानकों में भी ऐसी ही सुविधाएं उपलब्ध हैं.

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

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

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

  • कुछ जगहों पर, अपडेट होने में कई घंटे या दिन लग सकते हैं.

नेटवर्क टाइम प्रोटोकॉल

नेटवर्क टाइम प्रोटोकॉल (एनटीपी) का इस्तेमाल, अक्सर यूनीक्स इपॉक टाइम की सटीक जानकारी पाने के लिए किया जाता है. Android, अपने सिस्टम के समय को एनटीपी सर्वर के समय के साथ सिंक करने की सुविधा देता है. हालांकि, इसके लिए ज़रूरी है कि RadioManager के क्लाइंट को सामान्य RadioTuner.getParameters() मेटाडेटा के ज़रिए इसकी जानकारी दी गई हो. जब सिस्टम का समय सिंक नहीं होता है और कैरियर ने हाल ही में NITZ अपडेट नहीं दिया होता है, तब NTP सिस्टम के समय को अपडेट करता है. अगर उपयोगकर्ता, NITZ उपलब्ध न होने पर AUTO_TIME चालू करता है, तो सिस्टम तुरंत नेटवर्क टाइम की जांच करता है.

फ़ायदे नुकसान

आसानी से इस्तेमाल करें. यह सुविधा Android पर काम करती है.

  • अधूरा, इसमें सिर्फ़ एक ज़रूरी वैल्यू (समय) दी गई है. सबसे अच्छे मामले में भी, एनटीपी टाइम ज़ोन की जानकारी नहीं दे सकता.

  • इसके लिए, इंटरनेट कनेक्शन ज़रूरी है.

ब्रॉडकास्ट रेडियो ट्यूनर

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

ETSI EN 300 401 V1.4.1 (2006-06), सेक्शन 8.1 में सेवा की जानकारी देने वाली सुविधाओं के बारे में बताया गया है. ये सुविधाएं, ऑडियो प्रोग्राम और डिजिटल ऑडियो ब्रॉडकास्टिंग (डीएबी) सिस्टम के डेटा, दोनों के लिए सेवाओं के बारे में अतिरिक्त जानकारी देती हैं. सेक्शन 8.1.3 में, समय और तारीख के फ़ॉर्मैट के साथ-साथ देश और स्थानीय समय के ऑफ़सेट की जानकारी दी गई है.

इसी तरह, रेडियो डेटा सिस्टम (आरडीएस) के लिए, EN 50067 स्टैंडर्ड के सेक्शन 3.1.5.6 में, घड़ी के समय और डेटा (हर मिनट में एक बार ट्रांसमिट किया जाता है) के फ़ॉर्मैट के बारे में बताया गया है. आरडीएस का इस्तेमाल आम तौर पर, FM ट्यूनर में किया जाता है. इसके अलावा, ट्रांसमिट किए गए प्रोग्राम आइडेंटिफ़िकेशन के हिस्से के तौर पर, एक्सटेंडेड कंट्री कोड (ईसीसी) भी वापस पाया जा सकता है.

एचडी रेडियो में, स्टेशन की जानकारी देने वाली सेवा (एसआईएस) के पैरामीटर मैसेज (एमएसजी आईडी 0111) में, एचडी रेडियो™ एयर इंटरफ़ेस डिज़ाइन स्टेशन की जानकारी देने वाली सेवा ट्रांसपोर्ट स्पेसिफ़िकेशन के तहत, इससे जुड़े विकल्प शामिल होते हैं. पांचवें सेक्शन में, साफ़ तौर पर चेतावनी वाले शब्दों के बारे में बताया गया है. ब्रॉडकास्ट में घड़ी की सुविधा का इस्तेमाल करते समय, इन शब्दों पर ध्यान देना ज़रूरी है. यह सिद्धांत अन्य सिस्टम पर भी लागू होता है:

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

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

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

लागू करने के बारे में सलाह

Android, अपने सिस्टम के समय को एनटीपी सर्वर के समय के साथ सिंक करने की सुविधा देता है. हालांकि, इसके लिए ज़रूरी है कि इसे RadioManager के क्लाइंट के लिए उपलब्ध कराया जा सके. हमारा सुझाव है कि आप वेंडर एक्सटेंशन की सुविधा का इस्तेमाल करें. इस सुविधा को हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) में लागू किया जाना चाहिए. इसके बाद, इसे सामान्य RadioTuner.getParameters() तरीके से RadioManager के क्लाइंट के लिए उपलब्ध कराया जा सकता है.

इस वेंडर एक्सटेंशन का इस्तेमाल करने वाले व्यक्ति को यह तय करना होगा कि HAL इस सुविधा के साथ काम करता है. ऐसा इसलिए, ताकि यह समाधान बेहतर बना रहे. यह न मान लें कि HAL इस सुविधा के साथ काम करता है. getParameters कॉल के लिए पैरामीटर स्ट्रिंग को साफ़ तौर पर व्यवस्थित किया जाना चाहिए, ताकि सभी वेंडर इसका इस्तेमाल आसानी से कर सकें. उदाहरण के लिए, अपने संगठन के नेमस्पेस का इस्तेमाल करें. इसके लिए, उसे सही डोमेन से प्रीफ़िक्स करें. उदाहरण के लिए, com.me.timezoneTuner.currenttimezone.

यह जानकारी इवेंट पर आधारित होती है. इसलिए, इस जानकारी को पाने के लिए RadioTuner.Callback.onParametersUpdated() कॉलबैक का इस्तेमाल करना फ़ायदेमंद हो सकता है. अगर इस सुविधा को कॉन्फ़िगर किया जाना चाहिए, तो setParameters के ऊपर कस्टम रूटीन का एक सेट डिज़ाइन करें. उदाहरण के लिए:

com.me.timezoneTuner.currenttimezoneEvent.enable

ग्लोबल नेविगेशन सैटलाइट सिस्टम (जीएनएसएस) सिर्फ़ समय और जगह की सटीक जानकारी दे सकता है.

भौगोलिक-स्थान

इस समस्या को हल करने के लिए, रिवर्स-जियोकोडिंग की जाती है. साथ ही, जगह के हिसाब से लुकअप करके देश और समय क्षेत्र का पता लगाया जाता है. किसी वाहन में जगह की जानकारी के लिए, GNSS सबसे अच्छा विकल्प है. Google का टाइम ज़ोन एपीआई, ज़रूरी कन्वर्ज़न को चलाने के लिए ज़रूरी सभी सुविधाएं देता है. इसके लिए, इंटरनेट कनेक्शन होना ज़रूरी है. ऑनलाइन सलूशन लागू करते समय, उपयोगकर्ता की निजता को सुरक्षित रखना सबसे ज़रूरी है! डेटा इस्तेमाल करने के शुल्क को स्वीकार करने (या न करने) के लिए, उपयोगकर्ता की अनुमति लेना ज़रूरी है. इसके लिए, अनुरोध करना होगा.

ऑफ़लाइन इस्तेमाल के लिए, सही समाधान तैयार किया जा सकता है. देश और समय क्षेत्र की सटीक जानकारी देने वाला, स्थानीय मैप का डेटाबेस, वाहन के स्टोरेज में सेव किया जा सकता है. इस सुविधा और समय क्षेत्र (और देश) की जानकारी को ज़रूरत के हिसाब से अपडेट करने की पूरी तरह से लागू की गई रणनीति की मदद से, कोई भी व्यक्ति लोकेशन सबसिस्टम से मिली GNSS पोज़िशन के आधार पर, देश/समय क्षेत्र को रिवर्स-जियोकोड कर सकता है.

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

फ़ोन को ब्लूटूथ, वाई-फ़ाई या यूएसबी से कनेक्ट किया गया हो

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

ब्लूटूथ लो एनर्जी (बीएलई) की सुविधा वाले कुछ फ़ोन, GATT Current Time characteristic और Current Time Service Profile Specification 1.1 के ज़रिए समय पाने का विकल्प देते हैं. हालांकि, इस विकल्प से मार्केट के बड़े सेगमेंट की ज़रूरतें पूरी नहीं होती हैं. इसलिए, इस पर पूरी तरह से भरोसा नहीं किया जा सकता.

फ़ायदे नुकसान
  • इसके लिए, इंटरनेट कनेक्शन की ज़रूरत नहीं होती.
  • फ़ोन में टाइम ज़ोन में हुए बदलावों का पता चलने पर, इसकी जानकारी हेड यूनिट को दी जा सकती है.
  • Android में यह सुविधा डिफ़ॉल्ट रूप से उपलब्ध नहीं है.
  • यह सुविधा सिर्फ़ तब काम करती है, जब फ़ोन हेड यूनिट से कनेक्ट हो.
  • फ़ोन में दिखने वाला समय सही या गलत हो सकता है.
  • इसे लागू करना मुश्किल है.
  • सभी फ़ोन पर, BLE GATT Current Time Service प्रोफ़ाइल काम नहीं करती.

सोर्स इस्तेमाल करना

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

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

मैन्युअल कॉन्फ़िगरेशन का विकल्प, कुछ समय के लिए इस्तेमाल किया जा सकता है. इसे लागू करना आसान है. साथ ही, यह कई उपयोगकर्ताओं के लिए काफ़ी हो सकता है.