2011-12-31 12 views
5

हम भारी जीपीएस उपयोग किया है जिसे किसी एप्लिकेशन विकसित कर रहे हैं, और हम बैटरी जीवन का अनुकूलन करने में असमर्थ हैं।iPhone जीपीएस - बैटरी बेहद तेज़ी से समाप्त हो

डिवाइस को स्थानांतरित नहीं होने पर भी, महत्वपूर्ण बैटरी जल निकासी है, कोड के अनुसार, ऐसा नहीं होना चाहिए। अगर वहाँ स्थान परिवर्तन है

locationManager = [[CLLocationManager alloc] init]; 
locationManager.distanceFilter = 100; 
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; 
[locationManager startUpdatingLocation]; 

आदर्श रूप में हम जीपीएस हर 20 मिनट में गति प्रदान करने के (यदि कोई स्थान परिवर्तन तो बैटरी बचाने के लिए) चाहते हैं या हर 5 मिनट:

यहाँ कोड है। मेरी डेवलपर के अनुसार इस

नहीं किया जा सकता पहले हम kCLLocationAccuracyBest उपयोग कर रहे थे, जो बैटरी बहुत तेजी से लेने गया था और अब हम kCLLocationAccuracyHundredMeters उपयोग कर रहे हैं।

startUpdatingLocation - जीपीएस निर्देशांक प्राप्त करने के लिए है। एक और कॉल शुरू हो रहा है मॉनिटरिंग सिग्निफिशेंट लोकेशन चेंज जो एजीपीएस निर्देशांक प्राप्त करने के लिए है, जो मुझे लगता है कि जब भी सेल टावर बदल जाएगा, तो समन्वय देता है, और इसलिए बैटरी वास्तव में तेज़ी से उपभोग करता है।

दूरी फ़िल्टर - न्यूनतम दूरी (मीटर में मापा गया) एक डिवाइस को अद्यतन घटना उत्पन्न होने से पहले बाद में स्थानांतरित होना चाहिए। दूरी फ़िल्टर के आधार पर हमें डिवाइस से जीपीएस फिक्स मिलता है और फिर हम सर्वर पर अद्यतन जीपीएस निर्देशांक भेजते हैं।

किसी भी मदद की सराहना की जाएगी धन्यवाद!

+3

लंबे समय तक चलने वाले सेंसर, विशेष रूप से जीपीएस, बैटरी को निकालने जा रहे हैं इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं। यदि आप जीवन को लंबा करना चाहते हैं, तो अपने नमूना आवृत्ति को कम करें। –

+0

हाय Maverick3, हम जीपीएस बैटरी बचाने के लिए हर 20 मिनट में जीपीएस स्थान की जांच करना चाहते हैं। क्या इसे लागू करने का कोई तरीका है? मेरे डेवलपर के मुताबिक हम ऐसा नहीं कर सकते हैं। मैं किसी भी संकेत की सराहना करता हूं। – KB403

+0

मैं टाइमर के साथ स्टार्टलोकेटिंग और स्टॉप लॉकिंग के उपयोग की अनुशंसा करता हूं, और फिर यह देखने के लिए प्रोफाइलिंग करता हूं कि बिजली की खपत कैसे बदलती है। इंटरनेट एक्सेस उपलब्ध होने पर एक और विकल्प स्थान प्रदाता सेवा का उपयोग करना है। लेकिन यह बहुत कम सटीक है। – Totoro

उत्तर

-1

आदर्श रूप में हम जीपीएस हर 20 मिनट में गति प्रदान करने के (यदि कोई स्थान परिवर्तन तो बैटरी बचाने के) या हर 5 मिनट में अगर वहाँ स्थान परिवर्तन चाहते हैं। मेरी डेवलपर के अनुसार इस

यह किया जा सकता है एक NSTimer कि विधि हर 20 मिनट में एक startLocating (कि CLLocationManager बनाता है और उस पर startLocating कॉल एक कस्टम विधि) कॉल का उपयोग नहीं किया जा सकता है। एक बार जब आप अपनी पसंद की सटीकता के साथ CLLocation पा लेते हैं तो सुनिश्चित करें कि आप CLLocationManager के stopLocating पर कॉल करें।

हालांकि, ऐसा करने का मतलब है कि 20 मिनट के लिए आप किसी ऐसे स्थान है पूरी तरह से बंद का उपयोग किया जा सकता है। यह इस बात पर निर्भर करता है कि आप स्थान का उपयोग करने की योजना कैसे बनाते हैं और इसे कितना सटीक होना चाहिए, लेकिन हो सकता है कि आपके देव का अर्थ "संभव नहीं" हो, यह है कि आपके ऐप को हर समय उपयोगकर्ता के वास्तविक स्थान की आवश्यकता होती है।

+0

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

+0

सुनिश्चित करें कि आप 'stopLocating' को कॉल करें और 'appDidEnterBackground' पर सभी चालू नेटवर्क अनुरोधों को रद्द करें। जीपीएस और एंटेना आईओएस उपकरणों से अधिक बैटरी को बाहर निकालते हैं। – samvermette

+0

इस समाधान की समस्या यह है कि बैटरी को बेकार करने वाला जीपीएस चालू है। –

4

अन्य कॉल startMonitoringSignificantLocationChanges जो AGPS निर्देशांक मैं रिटर्न का मानना ​​है कि जो निर्देशांक जब भी सेल टॉवर बदल जाएगा प्राप्त करने के लिए है नहीं है, और इसलिए बैटरी वास्तव में खपत तेजी से।

यह वही है जो यह करता है, लेकिन आप इसके लिए आवश्यक शक्ति के बारे में निष्कर्षों पर कूद रहे हैं। जीपीएस रिसीवर और वाईफाई ट्रान्सीवर का उपयोग स्थान निर्धारित करने में मदद के लिए किया जा सकता है, लेकिन वे अतिरिक्त डिवाइस हैं जिन्हें उपयोगी होने के लिए संचालित किया जाना चाहिए।लेकिन फोन कॉल प्राप्त करने के लिए आईफोन जैसे मोबाइल फोन को निकटतम सेल टावर के संपर्क में रहने की जरूरत है, इसलिए स्थान जानकारी के स्रोत के रूप में सेल टावरों का उपयोग करना बिजली के संबंध में बहुत ही कुशल होना चाहिए। यहां बताया गया है CLLocationManager reference page-startMonitoringSignificantLocationChanges के बारे में कहते हैं है: केवल जब यह डिवाइस के जुड़े सेल टावरों में परिवर्तन का पता लगाता है, कम बार अपडेट और काफी कम बिजली के उपयोग में जिसके परिणामस्वरूप

यह इंटरफ़ेस नई घटनाओं वितरित करता है।

यह "जबरदस्त बिजली बचत" प्रदान करने के रूप में सेवा का भी वर्णन करता है, इसलिए यह आपके द्वारा वर्णित नौकरी के लिए सही टूल लगता है। बेशक, यदि आप एक ही समय में मानक स्थान अद्यतन तंत्र का उपयोग कर हैं, तो आपको उस समय बिजली की बचत दिखाई नहीं देगी, इसलिए सुनिश्चित करें कि आप दोनों का उपयोग नहीं कर रहे हैं।

आदर्श रूप में हम जीपीएस हर 20 मिनट में गति प्रदान करने के (यदि कोई स्थान परिवर्तन तो बैटरी बचाने के) या हर 5 मिनट में अगर वहाँ स्थान परिवर्तन चाहते हैं। मेरे डेवलपर के मुताबिक यह नहीं किया जा सकता है

ऐसा लगता है कि यहां कुछ प्रकार की गलतफहमी है। यदि आप यही चाहते हैं तो आप निश्चित रूप से ठीक होने के लिए हर 20 मिनट में जीपीएस को फायर कर सकते हैं, हालांकि आप पृष्ठभूमि से ऐसा नहीं कर सकते हैं। महत्वपूर्ण स्थान परिवर्तन सेवा आपके ऐप को सूचित करेगी भले ही यह पृष्ठभूमि में चल रही हो, तो शायद आपका डेवलपर पृष्ठभूमि अपडेट के बारे में बात कर रहा है।

0

आपकी धारणा है कि शुरूआत मॉनिटरिंग सिग्निफिशेंट लोकेशन चेंज बैटरी का उपभोग करता है वास्तव में गलत है। सेल टावर परिवर्तन आम तौर पर 100 मीटर की गति से कहीं अधिक कम होते हैं। और एक आईफोन इस घटना के लिए जांच करता है भले ही निष्क्रिय और सभी ऐप्स सो रहे हों।

हालांकि, किसी भी टावर (केवल 1 बार) से दूर एक सेल फोन (उदाहरण के लिए हवाई जहाज मोड) को रखने से डिवाइस की बैटरी निकल जाएगी या नहीं, कोई ऐप किसी भी स्थान की निगरानी कर रहा है या नहीं।

स्टॉक आईओएस डिवाइस पर, एक ऐप डिवाइस पर और आपके ऐप को अग्रभूमि में चलने के बिना, प्रत्येक 20 मिनट या हर 5 मिनट में टाइमर आधार पर स्थान निगरानी को ट्रिगर नहीं कर सकता है, जो बैटरी को हटा देगा।

0

यदि आपको सटीक स्तर की सटीकता की आवश्यकता है, तो आपको अपडेटिंग लोकेशन शुरू करना चाहिए और जैसे ही आपको पहला फिक्स मिलना चाहिए, तब आपको अद्यतन करना बंद कर देना चाहिए और फिर मॉनिटरिंग सिग्निफिशेंट लोकेशन चेंज शुरू करना चाहिए।

यह अधिकांश ऐप उद्देश्यों के लिए पर्याप्त है।

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