2011-02-26 13 views
5

मेरे पास ऐसा ऐप है जो तृतीय-पक्ष सर्वर की सूची प्रबंधित करता है और जानकारी के लिए उन्हें मतदान कर सकता है। इन सर्वरों को एक दूसरे से स्वतंत्र होना चाहिए (और संभावित रूप से मेरे नियंत्रण में नहीं)।सी 2 डीएम: क्या मैं एक ही ऐप में एकाधिक प्रेषक-आईडी के लिए पंजीकरण कर सकता हूं?

अब मैं लगातार सक्रिय मतदान से बचने के लिए c2dm अधिसूचनाओं को लागू करना चाहता हूं। तृतीय-पक्ष सर्वर senderId प्रकाशित करने में सक्षम होंगे और Google के साथ पंजीकरण करने के बाद मेरे क्लाइंट को उन्हें C2DM registrationId भेजने की अनुमति देगा।

अब मेरा प्रश्न: क्या एकाधिक सी 2 डीएम प्रेषकों के लिए एक ही एप्लिकेशन पैकेज से पंजीकरण करना संभव है? और यदि हां, तो मैं एक दूसरे से पंजीकरण (और विशेष रूप से अपंजीकरण) प्रक्रियाओं को कैसे अलग करूं, ताकि मैं सही स्थानीय सर्वर कॉन्फ़िगरेशन प्रविष्टि को अपडेट कर सकूं?

मुझे मिला एकमात्र संसाधन this google groups thread था, लेकिन इसका उत्तर थोड़ी देर के लिए नहीं दिया गया है। मुझे उम्मीद है आप सहायता कर सकते हैं।

नोट: यह केवल पंजीकरण के बारे में है। संदेश भेजते समय, तृतीय-पक्ष सर्वर उनके सर्वर नाम को इंजेक्ट कर सकते हैं, इसलिए संदेश हैंडलर उन्हें अलग कर सकता है। लेकिन Google के सर्वर के साथ पंजीकरण प्रक्रिया मुझे उपयोगकर्ता की परिभाषित जानकारी को मेरे BroadcastReceiver

+0

यदि कोई दिलचस्पी लेता है, तो अब मैं उपयोगकर्ता को (उन्नत वरीयताओं में) को 'प्रेषक आईडी' चुनने दूंगा। वास्तव में समस्या को हल नहीं करता है, लेकिन कम से कम उपयोगकर्ता किसी विशिष्ट सर्वर के निजी 'प्रेषक आईडी' से बाध्य नहीं है। बेशक अब तीसरे पक्ष के सर्वर के साथ ग्राहक के पंजीकरण अनुरोध में अब 'प्रेषक आईडी' शामिल होना है। – user634618

+0

Google google-play-service में Google एकाधिक एकाधिक प्रेषकों का समर्थन करता है: http://stackoverflow.com/a/11910550/1083128 – Bastet

उत्तर

3

यह संबंधित हो सकता है से कोई संदेश प्राप्त नहीं होगा: http://groups.google.com/group/android-c2dm/browse_frm/thread/e2095d79c80de4c1/37325b1b1e5ec1e1?lnk=gst&q=multiple#37325b1b1e5ec1e1

कोस्टिन Manolache (गूगल पर सॉफ्टवेयर इंजीनियर) द्वारा लिखित:

एक ऐप 2 अलग प्रेषक आईडी पंजीकृत नहीं कर सकता है - एक (0 -एक (एंड्रॉइड-आईडी + ऐप आईडी) के लिए रिकॉर्ड है, दूसरा पंजीकरण पहले स्थान को प्रतिस्थापित करेगा और पहला प्रेषक भेजने में सक्षम नहीं होगा।

किसी भी मामले में - यह अभी 'समर्थित' सुविधा नहीं है, लेकिन उचित लगता है।

कृपया एकाधिक ग्राहकों के साथ साझा किए गए एक प्रेषक खाते का उपयोग न करें - TOS के अलावा आप अन्य समस्याओं में भाग सकते हैं।

मुझे एक ही समस्या है। एक ग्राहक के पास एकाधिक सर्वर वाले एकाधिक खाते होते हैं और उन सभी सर्वरों के साथ पंजीकरण करेंगे जिनके पास नोटिफिकेशन प्राप्त करने के लिए खाते हैं।

0

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

उपरोक्त विवरण तो सही है, तो:

आप आंतरिक ServerId की सूची को बनाए रखने और C2DM पंजीकरण आईडी उत्पन्न कर सकते हैं। कोज़ सी 2 डीएम पंजीकरण आईडी पैकेज के लिए अद्वितीय है। इसे फिर से पंजीकृत करने के लिए एक ही पैकेज की कोशिश की जाएगी। इसलिए यह पंजीकरण आईडी आप सर्वर की संख्या को दे सकती है और वे इस पंजीकरण आईडी के साथ संदेश भेज सकते हैं और यह आपके आवेदन पर निर्भर रूप से पहुंच जाएगा।

अनियंत्रण उद्देश्य के लिए आप हमेशा सूची से सर्वर आईडी को हटा सकते हैं। आपको सी 2 डीएम पंजीकरण आईडी के बारे में बहुत कुछ करने की ज़रूरत नहीं है क्योंकि यह केवल एक है। यदि आप C2DM से अपंजीकृत तो आवेदन अपने सर्वर से किसी

+1

स्थिति यह है: कई असंबद्ध सर्वर हैं जो प्रत्येक पुश सूचनाएं भेज सकता है, और एंड्रॉइड क्लाइंट को चाहिए अपनी अधिसूचनाओं की सदस्यता लेने के लिए स्वतंत्र रूप से प्रत्येक सर्वर पर पंजीकरण करने में सक्षम हो। – user634618

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