2017-01-17 29 views
5

खोलने तक अपडेट नहीं होता है, मैं अपने ऐप में फ़्यूज्ड लोकेशन प्रदाता का उपयोग कर रहा हूं जो 60 सेकंड के अंतराल पर PRIORITY_HIGH_ACCURACY पर सेट है। यह आमतौर पर काम करता है लेकिन कभी-कभी स्थान 5 से 10 मिनट के लिए अपडेट नहीं होता है, और जब मैं Google मानचित्र खोलता हूं, तो ऐसा लगता है कि यह एक स्थान अपडेट ट्रिगर करता है।फ़्यूज्ड स्थान जीपीएस Google मानचित्र

कोई और व्यक्ति जो इस मुद्दे में भाग ले सकता है या इस व्यवहार के पीछे संभावित कारणों को जानता है? क्या इसको ठीक करने का कोई तरीका है?

+0

क्या आपके पास अच्छी स्थान अनुमति है? –

+0

हां, ठीक और मोटे दोनों। – Zishan

+0

क्या आपने स्थान अपडेट का अनुरोध किया था या क्या आप समय-समय पर 'getLastLocation()' विधि को मतदान कर रहे हैं? –

उत्तर

0

जीपीएस हमेशा एक स्थान वापस नहीं करता है, भले ही यह FusedLocationProvider एपीआई या स्थान प्रबंधक LocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) के माध्यम से उपलब्ध हो। विशेष रूप से, यदि आप घर के अंदर हैं तो आपके डिवाइस की जीपीएस चिप के आधार पर जीपीएस से स्थान प्राप्त करने की संभावना कम है। एक स्थान वापस करने के लिए जीपीएस तय किया जाना चाहिए।

आप एक टेस्ट ऐप लिख सकते हैं जिसमें जीपीएस, वाईफ़ाई और जीपीएसस्टैटस लिस्टनर के साथ स्थान मैनेजर है, ताकि उपग्रह गिनती, फिक्स में उपग्रह, और उपग्रह सिग्नल की शक्ति जांच सकें और उसी समय FusedLocationProvider के साथ इसकी तुलना करें और मानचित्र पर प्रदान किए गए स्थान जोड़ें मार्करों। आप FLP के लिए Location.getExtras() भी देख सकते हैं जिसमें उपग्रहों के बारे में जानकारी हो सकती है। यहां तक ​​कि यदि स्थान प्रबंधक जीपीएस उपलब्ध है और उपग्रह गणना 2 है तो मुझे जीपीएस से कोई स्थान नहीं मिल सकता है।

छवि में हैलो वर्ल्ड जीपीएस स्थान होना चाहिए लेकिन यह अभी तक तय नहीं होने के बाद से वापस नहीं किया गया है। LocationManager Gps Status test परीक्षण आपकी समस्या का समाधान नहीं कर सकता है लेकिन आप उन स्थितियों की तुलना कर सकते हैं जिन्हें आप स्थान प्राप्त करते हैं या उदाहरण के लिए आप जीपीएस या न्यूनतम सिग्नल शक्ति से स्थान प्राप्त करने के लिए 3 उपग्रहों का उपयोग करने की आवश्यकता हो सकती है। जीपीएस को लॉक करने और GpsStatusListener पर स्थिति लॉक होने पर GpsStatus.GPS_EVENT_FIRST_FIX पर सेट होने में भी बहुत लंबा समय लग सकता है। मुझे जीपीएस तय करने और स्थान वापस करने में लगभग 5 मिनट लग गए। मैंने मानचित्रों के साथ एक और परीक्षण भी लिखा और मुझे एक ही समस्या थी जब तक कि जीपीएस को स्थान प्रबंधक और एफएलपी दोनों पर तय नहीं किया जाता।

0

निम्नलिखित link से मेरे निष्कर्ष फ़्यूज्ड स्थान प्रदाता केवल पृष्ठभूमि स्थान बनाए रखेंगे यदि कम से कम एक ग्राहक इससे जुड़ा हुआ है। एक बार पहला क्लाइंट कनेक्ट हो जाने पर, यह तुरंत एक स्थान प्राप्त करने का प्रयास करेगा। यदि आपकी गतिविधि कनेक्ट करने वाला पहला ग्राहक है और आप getLastLocation() पर तुरंत onConnected() पर कॉल करते हैं, तो हो सकता है कि पहले स्थान के आने के लिए पर्याप्त समय न हो। इसके परिणामस्वरूप स्थान null होगा।

इस समस्या को हल करने के लिए, आपको प्रदाता को स्थान प्राप्त होने तक (अनिश्चित रूप से) इंतजार करना होगा और फिर getLastLocation() पर कॉल करना असंभव है, जो जानना असंभव है।

आवधिक स्थान अपडेट प्राप्त करने के लिए com.google.android.gms.location.LocationListener इंटरफ़ेस को लागू करने के लिए एक और (बेहतर) विकल्प लागू करना है (और आपको पहला अपडेट मिलने के बाद इसे बंद करें)।

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