2011-10-14 16 views
5

मैं किसी Android फ़ोन पर पृष्ठभूमि जीपीएस ट्रैकिंग क्या करने की जरूरत है, और मैं वर्तमान में दो स्थितियों होने की योजना बना रही है:एंड्रॉयड जीपीएस ट्रैकिंग और Wakelock

  1. फ़ोन को (कार) चार्जर से जुड़ा है, मिलता है लगातार जीपीएस स्थानों (हर मिनट)।
  2. जब फोन चार्जर से कनेक्ट नहीं होता है, तो बैटरी के प्रभावित होने के आधार पर प्रत्येक 5-30 मिनट में केवल एक स्थान के लिए मतदान होता है।

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

इन परिदृश्यों के लिए, निरंतर पृष्ठभूमि जीपीएस ट्रैकिंग करने का सबसे अच्छा तरीका क्या है, फोन सोने के बिना, और बहुत अधिक बिजली निकालने के बिना?

अब तक मैं निम्नलिखित इकट्ठा:

परिदृश्य 1 के लिए, मैं शायद एक प्राप्त नहीं Wakelock की आवश्यकता होगी, और सीपीयू को सक्रिय रखने के लिए हर समय (लेकिन आपकी स्क्रीन निष्क्रिय हो सकते हैं)। ऐसा लगता है कि MyTracks अनुप्रयोग TrackRecordingService में ऐसा कर रहा है। ओपनजीपीस्ट्रैकिंग the same करने लगता है।

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

बिजली के उपयोग इन दोनों तरीकों (स्थायी Wakelock बनाम AlarmManager) के लिए की तुलना कैसे होगा? क्या जीपीएस उचित समय में एक सटीक स्थान प्राप्त कर सकता है जब केवल हर 30 मिनट की जांच हो?

स्टैक ओवरव्लो पर कुछ संबंधित प्रश्न हैं, लेकिन कोई भी उत्तर देने वाले उत्तरों के साथ नहीं। कुछ अर्द्ध उपयोगी लोगों को:

उत्तर

5
  1. जब फोन चार्जर से जुड़ा है यू के रूप में wakelock प्राप्त कर सकते हैं (मुझे MyTracks की ओर इशारा) ua लगातार जीपीएस स्थानों को पाने की योजना बना रहे हैं, इस मामले में अलार्ममेनगर एक अच्छा विचार नहीं प्रतीत होता है।

  2. फोन चार्जर यू अलार्म प्रबंधक का उपयोग कर सकते के रूप में यू ही एक स्थान एक बार हर 5-30 मिनट के लिए मतदान करेंगे से जुड़ा नहीं है जब। वाकेलॉक प्राप्त करने से आपके बैटरी जीवन में काफी असर पड़ेगा।

कार्यान्वयन आपके ऊपर है।

चीयर्स .... !!

+0

कोई विचार है कि वाकेलॉक बैटरी को कितना प्रभावित करता है? और यदि यह केवल कुछ ही मिनटों में किया जाता है तो एक स्थान प्राप्त करने में कितना समय लगेगा? – Ralf

+0

डिवाइस बैटरी जीवन इस एपीआई के उपयोग से काफी प्रभावित होगा। वेक लॉक हासिल न करें जबतक कि आपको वास्तव में उनकी आवश्यकता न हो, न्यूनतम स्तरों का उपयोग करें, और जितनी जल्दी हो सके इसे रिलीज़ करना सुनिश्चित करें। http://developer.android.com/reference/android/os/PowerManager.html#ACQUIRE_CAUSES_WAKEUP – Rohit

6

आप अगर बिजली या जुड़ा हुआ नहीं है प्रसारण रिसीवर का उपयोग करें और अपने तदनुसार कार्रवाई कर सकते हैं।

पावर के लिए कनेक्ट किया गया:

public class PowerConnected extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    if(intent.getAction().equalsIgnoreCase("android.intent.action.ACTION_POWER_CONNECTED")){ 
     //Initialize your listener here... 
    } 
    } 

} 

अपने मैनिफ़ेस्ट फ़ाइल में:

<receiver android:name=".receiver.PowerConnected" > 
<intent-filter > 
    <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> 
</intent-filter> 
</receiver> 

जब पावर डिस्कनेक्ट किया जाता है:

public class PowerDisconnected extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    if(intent.getAction().equalsIgnoreCase("android.intent.action.ACTION_POWER_DISCONNECTED")){ 
    //Do your task here...  
    } 
} 
} 

अपने मैनिफ़ेस्ट फ़ाइल में:

<receiver android:name=".receiver.PowerDisconnected" > 
<intent-filter > 
    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> 
</intent-filter> 
</receiver> 

अब आपको service का उपयोग करना चाहिए और वहां अपने जीपीएस को प्रारंभ करना चाहिए। जब बिजली कनेक्ट होती है तो GPS_Provider का उपयोग करें network provider का उपयोग करें। यदि आवश्यक हो तो wakelock का उपयोग करें।

+0

धन्यवाद, यह उपयोगी है। – Ralf

+0

आपको उत्तर को स्वीकार करना चाहिए, यह अनुत्तरित के रूप में तैर जाएगा। धन्यवाद .. –

+2

जबकि मैं निश्चित रूप से इसका उपयोग करूंगा, मुझे लगता है कि यह मेरे मूल प्रश्न का उत्तर नहीं देता है कि जीपीएस ट्रैकिंग के लिए सबसे अच्छी रणनीति क्या है। – Ralf

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