2011-03-09 17 views
13

मुझे पता है कि ब्रॉडकास्ट रिसीवर टेक्स्ट, फोन इवेंट आदि के लिए देखता है ... लेकिन क्या आप स्थान सेवा के आधार पर स्थान सेवा को चला सकते हैं?स्थान के लिए ब्रॉडकास्ट रिसीवर

उदाहरण के लिए, आप एक निश्चित जीपीएस बिंदु के पास हैं और फोन आपको सूचित करता है।

+1

यहां आपको http://developer.android.com/reference/android/location/LocationListener.html – schwiz

उत्तर

31

मुझे लगता है कि आप जो खोज रहे हैं वह ऐसा कुछ है। LocationManager.requestLocationUpdates() का एक संस्करण है जो पैरामीटर के रूप में PendingIntent लेता है, और इस इरादे का उपयोग BroadcastReceiver को आग लगाने के लिए किया जा सकता है। यह कोड स्थान अपडेट के साथ आग लगने के लिए एक कस्टम प्रसारण पंजीकृत करेगा।

Intent intent = new Intent("UNIQUE_BROADCAST_ACTION_STRING_HERE"); 
LocationManager manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 
long minTime;  //This should probably be fairly long 
float minDistance; //This should probably be fairly big 
String provider; //GPS_PROVIDER or NETWORK_PROVIDER 

PendingIntent launchIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 
manager.requestLocationUpdates(provider, minTime, minDistance, launchIntent); 

तो फिर तुम सिर्फ एक ही आशय कार्रवाई के साथ अपने BroadcastReceiver रजिस्टर करने के लिए है और यह प्रसंस्करण के लिए स्थान अपडेट प्राप्त होंगे। और, ज़ाहिर है, उस PendingIntent को चारों ओर रखें क्योंकि आपको किसी बिंदु पर manager.removeUpdates(launchIntent) पर कॉल करने की आवश्यकता होगी!

अंतिम नोट:

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

स्थान सेवा को आराम करने के लिए आप एक बड़े मिनीटाइम या मिनीडिस्टेंस पैरामीटर के साथ आवृत्ति अप स्थान अपडेट को बहुत कम करना चाहते हैं। यह सुविधा उपयोगकर्ता नियंत्रित वरीयता से भी जुड़ी होनी चाहिए ताकि वे पृष्ठभूमि में ट्रैकिंग स्थान से आपके ऐप को सक्षम/अक्षम कर सकें।

आशा है कि मदद करता है!

+0

@ वायरलेस-डिजाइन, आप एक रत्न हैं: आप नीचे दिए गए और अधिक विस्तार में यह सीख सकते हैं मैंने सोचा कि यह मामला था, मैं अभी भी Droid के लिए इंटेंट के बारे में सीख रहा हूं, आप प्रतिक्रिया बहुत जानकारीपूर्ण है - आपके समय के लिए धन्यवाद सर! – ProNeticas

+0

कोई समस्या नहीं है। यदि यह उत्तर आपकी समस्या को हल करने के समाप्त होता है, तो इसे स्वीकार करने के लिए स्वतंत्र महसूस करें। चीयर्स! – Devunwired

+0

मैं करूँगा, मैं पहले परीक्षण करना चाहता था;) – ProNeticas

20

यह प्रश्न 2 साल से अधिक पुराना है लेकिन अब ऐसा करने के लिए बहुत ही आसान और बैटरी कुशल तरीका है। अवधारणा को भूगर्भ कहा जाता है। ,

http://developer.android.com/training/location/geofencing.html

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