2013-01-14 45 views
7

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

मैं यह करने का सबसे अच्छा तरीका जानना चाहता हूं? (कोड नहीं है, इसे कैसे करना है इसकी सामान्य संरचना)।

मैं दो संभव तरीके के बारे में सोचा है

मार्ग 1:

1) एप्लिकेशन को उपयोगकर्ता स्थान प्राप्त किया है और हर 5 मिनट में सर्वर को रिपोर्ट करें। 2) यदि उपयोगकर्ता स्थान के सेट त्रिज्या में है, तो उन्हें अधिसूचना भेजें।

रास्ता 2:

1) सूचनाएं बाहर भेजें और फिल्टर करने के लिए और केवल सही क्षेत्रों में उपयोगकर्ताओं को सूचनाएं दिखाने वाले प्रसारण रिसीवर विधि/s का उपयोग करें।

दोनों बेहद अक्षम हैं, जैसे 1 लगातार चल रही सेवा पर निर्भर करता है, और तरीका 2 ऐप के सभी उपयोगकर्ताओं को नोटिफिकेशन भेजता है, और अधिसूचनाएं बहुत ही क्षेत्र विशिष्ट होंगी, अधिसूचना लगभग 100% अधिसूचना नहीं होगी उपयोगकर्ता के लिए प्रासंगिक हो (और इसलिए दिखाया नहीं गया)।

मैंने पहले से ही जीसीएम कोड लिखा है और उपयोगकर्ता स्थान भी प्राप्त कर सकते हैं, मुझे बस उन्हें जोड़ने का एक तरीका चाहिए।

मुझे आशा है कि मैंने अपना प्रश्न स्पष्ट कर दिया है।

+0

आखिर में आपने क्या निर्णय लिया है? –

उत्तर

5

'वे 1.5' (1 और 2 का संयोजन) के बारे में कैसे?

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

लेकिन, एप्लिकेशन व्यापक सीमा के लिए नोटिफिकेशन जानता है, इसलिए यदि उपयोगकर्ता चलता है, तो एप्लिकेशन सेवा से कनेक्ट किए बिना नई अधिसूचना (विस्तृत सीमा के भीतर) दिखा सकता है।

कुछ अतिरिक्त विचार:

  • उपयोगकर्ता व्यापक रेंज छोड़ देता है, आवेदन स्वचालित रूप से आपकी सेवा के लिए फिर से कनेक्ट कर सकते हैं अधिसूचना की एक नई बैच अनुरोध करने के लिए।
  • आप विस्तृत सीमा कॉन्फ़िगर करने योग्य बना सकते हैं, इसलिए उपयोगकर्ता बहुत सारे संचार या व्यापक श्रेणी को पसंद कर सकता है।
  • उपयोगकर्ता की गति के आधार पर (उदाहरण के लिए यदि वह कार या पैदल चल रहा है), अधिसूचना की विस्तृत श्रृंखला को समायोजित किया जा सकता है।
+1

"यदि उपयोगकर्ता विस्तृत सीमा छोड़ देता है" - सेवा इसे कैसे समझ सकती है? एक केंद्र पिंट और सर्वर से त्रिज्या और फिर जांचें कि यह समय-समय पर सर्कल के अंदर है या नहीं? –

+0

सेवा अन्य जानकारी के साथ इन विवरणों (जैसे केंद्र बिंदु और त्रिज्या) भेज सकती है, ताकि आप यह जांच सकें कि अपडेट की आवश्यकता है या नहीं। इस के साथ सेवा परेशान करने की कोई ज़रूरत नहीं है! – Veger