2012-07-10 16 views
8

काम नहीं करता है मैं गोले द्वारा प्रदान किए गए उदाहरण का उपयोग करता हूं और मैंने नोटिफिकेशन और सर्वर पक्ष प्राप्त करने के लिए क्लाइंट साइड एप्लिकेशन बनाया है, दोनों एप्लिकेशन (कोड) Google द्वारा प्रदान किए गए हैं।एंड्रॉइड जीसीएम

मैं क्लाइंट पक्ष पर एप्लिकेशन चलाता हूं और मुझे पंजीकरण_आईडी मिलती है। कुछ विशाल स्ट्रिंग, इस प्रारूप में जो नीचे है:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA

यह मुझे साबित करता है कि क्लाइंट एप्लिकेशन काम करता है। अब सर्वर (जावा, गूगल उदाहरण):

public static void main(String[] args) { 

     Sender sender = new Sender("AIzaSXXXXXXXXXX_XXXXXXXXXXXXXXXrQOnoGZw");  
     Message message = new Message.Builder() 
     .collapseKey("1") 
     .timeToLive(3) 
     .delayWhileIdle(true) 
     .addData("message", 
      "this text will be seen in notification bar!!") 
     .build(); 

     try { 
      Result result = sender.send(message, "APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA", 3); 
      System.out.println(result.toString()); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
} 

यह सर्वर है। जब मैं सर्वर चलाता हूं तो मुझे कुछ ऐसा परिणाम मिला: [messageId = 0: 1341907115903155% 921c249a00000031] लेकिन क्लाइंट पर कोई संदेश नहीं है और मुझे समझ में नहीं आता है। सर्वर से मिली प्रतिक्रिया का अर्थ क्या है? क्या यह सफलता प्रतिक्रिया है?

मुझे समझने में मदद की ज़रूरत है कि क्या गलत है?

उत्तर

4

GCM Documentation के अनुसार:

जब एक 3 पार्टी सर्वर GCM के लिए एक संदेश पोस्ट और संदेश आईडी वापस प्राप्त करता है, इसका मतलब यह नहीं है कि संदेश पहले से ही डिवाइस के लिए दिया गया था। इसके बजाय, इसका मतलब है कि इसे डिलीवरी के लिए स्वीकार किया गया था। संदेश स्वीकार किए जाने के बाद क्या होता है कई कारकों पर निर्भर करता है।

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

+0

काम है स्थापित करें जब हम शोध करे – Developer

+0

@GauravPandey डिवाइस पर संदेश प्राप्त नहीं होंगे है - यही कारण है कि GCM सेवा पर बहुत निर्भर है , यदि आप जाते हैं और जीसीएम दस्तावेज़ीकरण की जांच करते हैं तो वे कहते हैं कि संदेश सर्वर द्वारा जल्द से जल्द संभवतः वितरित किए जाएंगे। – bhuvin

6

उनकी टिप्पणी की समीक्षा करें

http://developer.android.com/guide/google/gcm/gcm.html

नोट: आपके संगठन एक फ़ायरवॉल कि करने के लिए या इंटरनेट से यातायात को प्रतिबंधित करता है, तो आप इसे कॉन्फ़िगर GCM के साथ कनेक्टिविटी की अनुमति देनी होगी। बंदरगाहों को खोलने के लिए हैं: 5228, 522 9, और 5230. जीसीएम आम तौर पर केवल 5228 का उपयोग करता है, लेकिन यह कभी-कभी 522 9 और 5230 का उपयोग करता है। जीसीएम विशिष्ट आईपी प्रदान नहीं करता है। यह अक्सर आईपी बदलता है।

2

अपने इंटरनेट निकालें फ़ायरवॉल यदि आप इसका उपयोग कर रहे हैं और पुनः प्रयास करें

Please go through this

0

यदि आपके सामने देरी अधिसूचना या जीसीएम में संदेश समस्या है तो इस समाधान को आजमाएं।

मैं जानता हूँ कि यह उचित समाधान नहीं है, लेकिन यह काम करता है इस एप्लिकेशन को यह वास्तव में के लिए मुझे HERE

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