2010-08-23 12 views
6

मैं अपने जीपीएस स्थान को प्रत्येक ~ 5 मिनट में एक बार बाहरी वेबसाइट पर अपलोड करने के लिए एंड्रॉइड पर एक ऐप लिखना चाहता हूं। बैटरी जीवन पर जितना संभव हो उतना कम प्रभाव पड़ता है, लेकिन इसे बिना किसी उपयोगकर्ता इंटरैक्शन के काम करने की भी आवश्यकता होती है। (पृष्ठभूमि: मैं एक आयरनमैन ट्रायथलॉन में प्रतिस्पर्धा कर रहा हूं जो मुझे पूरा करने के लिए लगभग 14 घंटे ले जाएगा, और मेरे स्थान को निकट-वास्तविक समय में प्रसारित करना चाहता है लेकिन मेरे फोन के साथ झुकाव के बारे में चिंता किए बिना।)प्रत्येक कुछ मिनटों में एक बार एंड्रॉइड जीपीएस स्थान प्राप्त करें

तो मेरा प्रारंभिक विचार एक सेवा लिखना है जो 5 मिनट के मिनट के साथ LocationManager.requestLocationUpdates() का उपयोग करता है, लेकिन क्या यह वास्तव में मेरी सेवा के लिए हर 5 मिनट में डिवाइस को जागृत करेगा?

ऐसा लगता है कि मैं भी यकीन है कि मेरे सेवा जाग रही है, जबकि वह अपने कार्य को पूरा करता बनाने के लिए AlarmManager.setInexactRepeating() का उपयोग करने की आवश्यकता होगी लगता है, लेकिन कैसे करता है requestLocationUpdates साथ कि खेलने()? क्या मुझे इसके बजाय requestLocationUpdates() पर minTime = 0 सेट करना चाहिए, लेकिन फिर अगली अपडेट प्राप्त होने पर ही सोने के लिए वापस जाना चाहिए?

इस पर डिजाइन करने के तरीके पर कोई सामान्य मार्गदर्शन बहुत सराहना की है। मैं एक सक्षम जावा प्रोग्रामर & मेरा स्थान प्लॉट करने के लिए सर्वर पर Google मानचित्र का उपयोग कर रहा हूं, लेकिन एंड्रॉइड डेवलपमेंट के लिए काफी नया हूं इसलिए मैं मूल रूप से क्लाइंट ऐप को आर्किटेक्ट करने के तरीके पर एक उच्च स्तरीय योजना की तलाश में हूं।

+1

मुझे आशा है कि आपके फोन के लिए आपके पास एक अच्छा निविड़ अंधकार कंटेनर होगा! – Nick

+0

@ निक हाँ, मैं सिर्फ एक प्लास्टिक बैगरी लाऊंगा लेकिन इस बिंदु पर मौसम का पूर्वानुमान बिल्कुल स्पष्ट है! –

उत्तर

1

आपकी सेवा हर बार जिंदा रहनी चाहिए जब आप अपडेट प्राप्त करना चाहते हैं।

http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28java.lang.String,%20long,%20float,%20android.location.LocationListener%29

आप बता सकते हैं कि आप कितनी बार minTime पैरामीटर के साथ स्थान परिवर्तन के बारे में सूचित किया जाना चाहते हैं। हालांकि बैटरी की खपत कम नहीं होती है। जीपीएस सक्षम है जब तक आप removeUpdates विधि का उपयोग नहीं करते हैं इससे कोई फर्क नहीं पड़ता कि आप कितनी बार अपडेट प्राप्त करना चाहते हैं।

आप एक और दृष्टिकोण का उपयोग कर सकते हैं: ऊपर विधि का उपयोग कर जीपीएस सक्षम करें, एक मान पढ़ें, हटाएं अद्यतन विधि का उपयोग करें, 5 मिनट प्रतीक्षा करें और फिर से। किसी स्थान को सक्षम और पुनः प्राप्त करने के बीच विलंब कुछ सेकंड से कुछ मिनट के बीच हो सकता है।

+0

धन्यवाद @ radek-k, मैंने उस प्रलेखन को देखा था लेकिन विवरण से मुझे लगता है कि एक उच्च मिनीटाइम सेट करना वास्तव में बैटरी को संरक्षित करेगा। आपका वर्णन यद्यपि समझ में आता है, लेकिन हो सकता है कि मैं बैटरी पर अधिक रूढ़िवादी होने के बजाय हर 15 मिनट में चक्र के माध्यम से लूप करूंगा। –

+0

आपके किसी भी दृष्टिकोण में जीपीएस रेडियो चालू है, है ना? तो यह वैसे भी खपत शक्ति हो सकता है। यदि किसी स्थान को सक्षम करने और पुनः प्राप्त करने में आपकी देरी (आपका दूसरा दृष्टिकोण) बहुत कम है, तो इसे जारी रखना बेहतर हो सकता है (जीपीएस फिक्स प्राप्त करने में कितना समय लगता है?) –

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