2010-01-13 17 views
10

मैंएंड्रॉइड: getLastKnown स्थान से बाहर की तारीख - स्थान ताज़ा करने के लिए कैसे मजबूर करें?

myLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

उपयोग कर रहा हूँ अपने आवेदन की स्टार्ट-अप पर वर्तमान स्थान को पुनः प्राप्त करने।

एंड्रॉइड प्रलेखन के अनुसार, यह स्थान "पुराना" हो सकता है, क्योंकि विधि जीपीएस का पिछली बार उपयोग की जाने वाली स्थिति को वापस लौटाती है।

मैं सक्रिय रूप से जीपीएस से वर्तमान स्थान का अनुरोध कैसे कर सकता हूं? मैंने LocationListener का उपयोग करने के बारे में सोचा, हालांकि यह एक ओवरकिल का थोड़ा सा हो सकता है, क्योंकि मुझे केवल एक बार (मेरे ऐप की शुरुआत में) की आवश्यकता है।

कोई विचार?

उत्तर

10

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

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

+0

मुचस gracias रेटो :-) – znq

+0

मान लीजिए कि मैं पहले से ही जीपीएस सक्षम करता हूं, और फिर मेरा ऐप शुरू करता हूं। अगर मैं एक ही स्थान पर रहता हूं, तो ऑनलाक्शन चेंज() को कॉल नहीं किया जाएगा। इस मामले के तहत, मैं कैसे सुनिश्चित कर सकता हूं कि GetLastKnownLocation() का वापसी मूल्य पुराना नहीं है? – flypen

+0

आप समय के आधार पर अद्यतन भी निर्दिष्ट कर सकते हैं, requestLocationUpdates पर एक नज़र डालें –

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