असल दुनिया की स्थितियों के लिए, जगह की जानकारी के इस्तेमाल को ऑप्टिमाइज़ करना

इस सेक्शन में, जगह की जानकारी इकट्ठा करने से जुड़ी कुछ सामान्य स्थितियों के बारे में बताया गया है. साथ ही, इसमें जगह की जानकारी देने वाली एपीआई और जियोफ़ेंसिंग का बेहतर तरीके से इस्तेमाल करने के सुझाव भी दिए ���ए हैं.

उपयोगकर्ता को दिखने वाले या फ़ोरग्राउंड अपडेट

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

setPriority() तरीके का इस्तेमाल करके, वैल्यू के तौर पर PRIORITY_HIGH_ACCURACY या PRIORITY_BALANCED_POWER_ACCURACY डालें.

setInterval() तरीके में तय किया गया इंटरवल, इस्तेमाल के उदाहरण पर निर्भर करता है: रीयल टाइम के उदाहरणों के लिए, वैल्यू को कुछ सेकंड पर सेट करें. इसके अलावा, कुछ मिनट तक सीमित करें. बैटरी के इस्तेमाल को कम करने के लिए, हमारा सुझाव है कि आप इसे दो मिनट या उससे ज़्यादा पर सेट करें.

डिवाइस की जगह की जानकारी

उदाहरण: मौसम की जानकारी देने वाला ऐप्लिकेशन, डिवाइस की जगह की जानकारी जानना चाहता है.

getLastLocation() तरीके का इस्तेमाल करें. इससे, सबसे हाल ही में उपलब्ध जगह की जानकारी मिलती है. हालांकि, कुछ मामलों में यह जानकारी शायद मौजूद न हो. इस तरीके से, जगह की जानकारी पाने का आसान तरीका मिलता है. साथ ही, जगह की जानकारी के अपडेट का अनुरोध करने पर लगने वाला शुल्क भी नहीं देना पड़ता. इसे isLocationAvailable() तरीके के साथ इस्तेमाल करें. यह तरीका, getLastLocation() से मिली जगह की जानकारी के अप-टू-डेट होने पर true दिखाता है.

जब कोई उपयोगकर्ता किसी खास जगह पर हो, तब अपडेट शुरू करना

उदाहरण: जब कोई उपयोगकर्ता ऑफ़िस, घर या किसी दूसरी जगह के आस-पास हो, तब अपडेट का अनुरोध करना.

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

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

उपयोगकर्ता की गतिविधि की स्थिति के आधार पर अपडेट शुरू करना

उदाहरण: सिर्फ़ तब अपडेट का अनुरोध करना, जब उपयोगकर्ता गाड़ी चला रहा हो या साइकल चला रहा हो.

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

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

भौगोलिक क्षेत्रों से जुड़े, बैकग्राउंड में जगह की जानकारी ऐक्सेस करने के अनुरोध से जुड़े अपडेट

उदाहरण: उपयोगकर्ता को डिवाइस के खुदरा दुकानदार के आस-पास होने पर सूचना चाहिए.

यह जियोफ़ेंसिंग के इस्तेमाल का एक बेहतरीन उदाहरण है. इस्तेमाल के उदाहरण में, बैकग्राउंड में जगह की जानकारी का इस्तेमाल ज़रूर किया जाता है. इसलिए, addGeofences(GeofencingRequest, PendingIntent) तरीके का इस्तेमाल करें.

आपको कॉन्फ़िगरेशन के ये विकल्प सेट करने चाहिए:

  • अगर विज्ञापन पर बने रहने के ट्रांज़िशन को ट्रैक किया जा रहा है, तो setLoiteringDelay() के तरीके का इस्तेमाल करें. इसमें, करीब पांच मिनट या उससे कम की वैल्यू डालें.

  • setNotificationResponsiveness() का इस्तेमाल करके, करीब पांच मिनट की वैल्यू दें. हालांकि, अगर आपका ऐप्लिकेशन ज़्यादा देर तक जवाब देने में देरी कर सकता है, तो करीब 10 मिनट की वैल्यू का इस्तेमाल करें.

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

ऐप्लिकेशन के किसी कॉम्पोनेंट के दिखे बिना, बैकग्राउंड में जगह की जानकारी के अपडेट लंबे समय तक चलना

उदाहरण: ऐसा ऐप्लिकेशन जो जगह की जानकारी को निष्क्रिय रूप से ट्रैक करता है

अगर हो सके, तो PRIORITY_NO_POWER विकल्प के साथ setPriority() तरीके का इस्तेमाल करें. ऐसा इसलिए, क्योंकि इससे बैटरी की खपत बहुत कम होती है. अगर PRIORITY_NO_POWER का इस्तेमाल नहीं किया जा सकता, तो PRIORITY_BALANCED_POWER_ACCURACY या PRIORITY_LOW_POWER का इस्तेमाल करें. हालांकि, बैकग्राउंड में लगातार काम करने के लिए PRIORITY_HIGH_ACCURACY का इस्तेमाल करने से बचें, क्योंकि यह विकल्प बैटरी को काफ़ी खर्च करता है.

अगर ��पको जगह की जानकारी का ज़्यादा डेटा चाहिए, तो setFastestInterval() तरीके को कॉल करके, पैसिव लोकेशन का इस्तेमाल करें. इसके लिए, setInterval() को पास की गई वैल्यू से कम वैल्यू पास करें. PRIORITY_NO_POWER विकल्प के साथ इस्तेमाल करने पर, पैसिव लोकेशन की सुविधा, अन्य ऐप्लिकेशन से कैलकुलेट की गई जगह की जानकारी को बिना किसी अतिरिक्त शुल्क के डिलीवर कर सकती है.

setMaxWaitTime() तरीका इस्तेमाल करके, कुछ इंतज़ार का समय जोड़कर फ़्रीक्वेंसी को कम करें. उदाहरण के लिए, अगर setinterval() तरीके का इस्तेमाल करके, वैल्यू को करीब 10 मिनट पर सेट किया जाता है, तो आपको setMaxWaitTime() को 30 से 60 मिनट की वैल्यू के साथ कॉल करना चाहिए. इन विकल्पों का इस्तेमाल करके, आपके ऐप्लिकेशन के लिए जगह की जानकारी का हिसाब करीब हर 10 मिनट में लगाया जाता है. हालांकि, ऐप्लिकेशन हर 30 से 60 मिनट में ही चालू होता है. इस दौरान, जगह की जानकारी का कुछ डेटा बैच अपडेट के तौर पर उपलब्ध होता है. इस तरीके से, ज़्यादा डेटा उपलब्ध कराने और बैटरी की परफ़ॉर्मेंस को बेहतर बनाने के लिए, इंतज़ार का समय बढ़ाया जाता है.

जब उपयोगकर्ता दूसरे ऐप्लिकेशन का इस्तेमाल कर रहा हो, तब सटीक जगह की जानकारी के लिए बार-बार अपडेट पाना

उदाहरण: कोई ऐसा नेविगेशन या फ़िटनेस ऐप्लिकेशन जो उपयोगकर्ता के स्क्रीन बंद करने या कोई दूसरा ऐप्लिकेशन खोलने पर भी काम करता रहे.

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