2011-04-13 15 views
8

मैं का अर्थ समझने GPS_PROVIDER (स्थानों जीपीएस संकेतों से आते हैं) और NETWORK_PROVIDER (स्थानों सेल टावरों और वायरलेस पहुंच बिंदुओं से निर्धारित कर रहे हैं), लेकिन मुझे PASSIVE_PROVIDER का अर्थ समझ में नहीं आता, एपीआई में परिभाषा के बावजूद:एंड्रॉइड.लोकेशन का अर्थ क्या है। स्थान प्रबंधक .PASSIVE_PROVIDER?

के लिए एक विशेष स्थान प्रदाता वास्तव में स्थान प्राप्त करने के बिना स्थान प्राप्त करने के लिए एक विशेष स्थान प्रदाता। प्रदाता को निष्क्रिय रूप से पर स्थान अपडेट प्राप्त हो सकते हैं जब अन्य एप्लिकेशन या सेवाएं अनुरोध करते हैं कि वास्तव में स्थानों का अनुरोध किए बिना। यह प्रदाता अन्य प्रदाताओं द्वारा उत्पन्न वापसी स्थान होगा। स्थान अपडेट की उत्पत्ति निर्धारित करने के लिए आप getProvider() विधि से पूछ सकते हैं। अनुमति की आवश्यकता है android.permission.ACCESS_FINE_LOCATION, हालांकि यदि जीपीएस सक्षम नहीं है यह प्रदाता केवल मोटे फ़िक्स लौटा सकता है।

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

उत्तर

18

यह प्रदाता उन सेवाओं के लिए उपयोगी है जो उपयोगकर्ताओं के स्थान के साथ काम करते हैं लेकिन बैटरी जीवन को बर्बाद नहीं करना चाहते हैं जैसा आपने बताया था।

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

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

+0

महान अंतर्दृष्टि! तो, यह बताता है कि अगर किसी को कम से कम निकटतम संभावित स्थान की आवश्यकता है, तो उन्हें उपयोगकर्ता को 'निष्क्रिय_प्रोवाइडर' नहीं होना चाहिए! – sud007

3

@Janusz में जोड़ने के लिए, जब आप किसी और के प्रदाता के कारण कोई फिक्स प्राप्त करते हैं और आप यह जानना चाहते हैं कि यह प्रदाता (नेटवर्क्स या जीपीएस) से कौन सा प्रदाता है, तो आप इसे पाने के लिए getProvider() को कॉल कर सकते हैं।

संबंधित मुद्दे