2011-03-10 21 views
5

स्थान प्रदाता की स्थिति प्राप्त करने के लिए एंड्रॉइड में सबसे अच्छा तरीका क्या है? स्थान अपडेट के लिए स्थान लिस्टनर पंजीकृत करते समय, onStatusChanged(String provider, int status, Bundle extras) कॉलबैक को जब भी स्थिति बदल दी जाती है तो कॉल किया जाएगा। हालांकि, मुझे स्थान की स्थिति में पंजीकरण किए बिना वर्तमान स्थिति (AVAILABLE, OUT_OF_SERVICE, TEMPORARILY_UNAVAILABLE) प्राप्त करने का कोई तरीका नहीं मिला। isProviderEnabled विधि केवल इंगित करता है कि प्रदाता आमतौर पर चालू होता है या नहीं (डिवाइस की सेटिंग्स में), तो true लौटा सकता है हालांकि प्रदाता सेवा से बाहर है ... क्या ऐसा करने का कोई और तरीका है?एंड्रॉइड स्थान एपीआई: प्रदाता स्थिति प्राप्त करें

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

किसी भी संकेत के लिए धन्यवाद!

Btw: यदि संभव हो तो, समाधान, एंड्रॉयड 1.1

+0

मुझे नहीं पता कि आप क्या चाहते हैं। लेकिन आप अंतिम ज्ञात स्थान ('LocationManager.getLastKnownLocation') प्राप्त कर सकते हैं और देख सकते हैं कि यह हालिया है या नहीं। यदि प्रदाता उपलब्ध है या नहीं तो यह आपको अनुमान लगाएगा। –

उत्तर

2

के साथ काम क्यों आप जीपीएस स्थिति चाहते हैं चाहिए अगर आप स्थान में कोई दिलचस्पी नहीं कर रहे हैं? 5 एक 3 डी सुधार के लिए

final GpsStatus gs = this.locationManager.getGpsStatus(null); 
int i = 0; 
final Iterator<GpsSatellite> it = gs.getSatellites().iterator(); 
while(it.hasNext()) { 
    it.next(); 
    i += 1; 
} 
this.gpsSatsAvailable = i; 

देखें http://developer.android.com/reference/android/location/GpsStatus.html आप एक सटीक 2 डी सुधार के लिए कम से कम 4 उपग्रहों की आवश्यकता होगी, और (:

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

+0

क्यों? मेरे मामले में क्योंकि मैं एक तकनीकी ऐप विकसित कर रहा हूं जो विभिन्न ऑनबोर्ड और ब्लूटूथ से जुड़े सेंसर की स्टेटस स्क्रीन प्रदर्शित करता है, इसलिए प्रदर्शित करने के लिए प्रारंभिक मान केवल समझ में आता है। अधिक दार्शनिक रूप से, यदि "स्थिति" अपने स्वयं के परिवर्तन-हैंडलर की योग्यता के लिए पर्याप्त महत्वपूर्ण है, तो निश्चित रूप से यह महत्वपूर्ण है कि वह अपने वर्तमान मूल्य से पूछने में सक्षम हो? – GISmatters

+0

आपके पास एक बिंदु है। – Stefan

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