2017-12-20 101 views
10

मैं अंतराल और विस्थापन आधारित अद्यतनों के लिए GoogleApiClient का उपयोग करके पृष्ठभूमि स्थान अपडेट पर काम कर रहा हूं और परीक्षण कर रहा हूं। कुछ दिनों के लिए परीक्षण और विश्लेषण पर मैंने आउटपुट में कुछ बदलावों का पता लगाया जिनकी मुझे उम्मीद नहीं थी।Google API का उपयोग करके पृष्ठभूमि स्थान अपडेट - फ़्यूज्ड स्थान प्रदाता सटीक नहीं

  1. setInterval और setFastestInterval अंतराल आधारित अद्यतन के लिए उपयोग करते समय, कहते हैं कि मैं 15 मिनट और सबसे तेजी से अंतरालके रूप में 10 मिनट, बार मैं अपडेट हो रही है के 90% के रूप में एक अंतराल निर्धारित किया है अपेक्षित अंतराल में (10 से 15 मिनट)। लेकिन कभी-कभी मैंने देखा कि अद्यतन निर्दिष्ट अंतराल की तुलना में अधिक समय लेते हैं, जैसे अंतर लगभग 30 मिनट और 60 मिनट है। अंतर क्या है के बारे में कोई विचार?

  2. दूरी आधारित अद्यतन के लिए setMinimumDisplacement उपयोग करते समय, कहते हैं कि मैं केवल स्थिर अंक (पर 200 मीटर की दूरी, मैं अपडेट हो रही है के रूप में एक विस्थापन निर्धारित किया है यात्रा करते यह अद्यतन भले ही नहीं देता है यह 200 मीटर से अधिक है) जो 200 मीटर और ऊपर हैं। क्या यह सामान्य रूप से काम करता है?

मैं आदेश की पृष्ठभूमि में स्थान अपडेट के लिए BroadcastReceiver में स्थान अपडेट प्राप्त करने के स्थान अनुरोधों के PendingIntent प्रकार का उपयोग कर रहा हूँ।

fusedLocationProviderClient.requestLocationUpdates(locationRequest, pendingIntent); 

जबकि परीक्षण, स्थान सेवाएं पर और स्थान मोडथे HIGH_ACCURACY था।

+1

मैं सामान्य व्यवहार नहीं कह सकता लेकिन मैंने आपके जैसे मुद्दों को देखा है। सच्चाई से, जवाब क्या है @Mitesh Vanaliya ने दस्तावेज़ीकरण से उद्धृत किया है, ** सभी स्थान अनुरोधों को संकेत माना जाता है, और आप उन स्थानों को प्राप्त कर सकते हैं जो अधिक/कम सटीक हैं, और अनुरोध किए गए तेज़/धीमे **। या, पैराफ्रेश करने के लिए, "आप हमें बता सकते हैं कि आप क्या चाहते हैं, और हम कभी-कभी ऐसा करेंगे, लेकिन अंत में हम क्या करेंगे और जब हम चाहते हैं" – Gary99

+0

यदि आप Google की अनुशंसित 'FusedLocationApi' का उपयोग नहीं करना चाहते हैं, तो आप अपने लिए अधिक नियंत्रण पाने के लिए पुराने स्थान प्रबंधक का उपयोग कर सकते हैं। [यहां] (https://developer.android.com/guide/topics/location/strategies.html) कुछ जानकारी है कि यह कैसे करें। – Gary99

+0

मैं 'लोकेशन लिस्टर' के लिए नहीं जाना चाहता था क्योंकि ऐप समाप्त होने पर इसे समाप्त कर दिया जाएगा। मैं ऐप समाप्त होने पर भी स्थान अपडेट प्राप्त करना चाहता हूं, यही कारण है कि मैं 'FusedLocationProviderClient' के 'requestLocationUpdates'' के लंबित इंटेन्टेंट संस्करण के लिए गया था। 'SetInterval' से प्राप्त होने वाले अपडेट' setMinimumDisplacement' से कहीं अधिक बेहतर हैं क्योंकि _setInterval_ के स्थान _setMinimumDisplacement_ की तुलना में अधिक सटीक हैं। – Joshua

उत्तर

2

कृपया स्थानRequest API का उचित व्यवहार प्राप्त करने के लिए दस्तावेज़ देखें।

LocationRequest Api documentation

इस दस्तावेज़ से:

  • एप्लीकेशन जैसे GPS के रूप में सटीक स्थान स्रोतों, कि LocationClient द्वारा किया जाता है निर्दिष्ट नहीं कर सकते। वास्तव में, सिस्टम में कई स्थान स्रोत (प्रदाता) चल सकते हैं और कई स्रोतों से परिणामों को एक ही स्थान वस्तु में फ्यूज कर सकते हैं
  • ACCESS_COARSE_LOCATION के साथ अनुप्रयोगों के स्थान अनुरोध और ACCESS_FINE_LOCATION स्वचालित रूप से धीमे अंतराल पर थ्रॉटल नहीं होंगे, और स्थान वस्तु को सटीकता के एक मोटे स्तर को दिखाने के लिए obfuscated किया जाएगा।
  • सभी स्थान अनुरोध तेजी से संकेत माना जाता है, और आप उन स्थानों है कि और अधिक/कम सटीक हैं प्राप्त हो सकता है, और/से अनुरोध किया

अधिक विस्तार वर्णन लिंक ऊपर से पूरा दस्तावेज़ीकरण पढ़ें धीमी।

आशा है कि यह स्पष्टीकरण आपकी मदद कर सकता है।

+0

धन्यवाद। मुझे पहले से ही स्थान स्रोतों और सटीकता के बारे में कुछ जानकारी पता है। मैं प्रश्न में ** दूसरे बिंदु ** के बारे में कुछ और जानकारी की उम्मीद कर रहा हूं, जैसे, यह सामान्य रूप से कैसे काम करता है? या मुझे इसके लिए कुछ और कोड लागू करना है। – Joshua

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