2013-05-15 5 views
8

मेरे पास एक एंड्रॉइड ऐप है जो जीसीएम पुश नोटिफिकेशन पर निर्भर करता है, और कभी-कभी, उपयोगकर्ता का डिवाइस पुश नोटिफिकेशन प्राप्त करना बंद कर देगा। व्यवहार काफी अड़चन है: कुछ उपकरणों पर, यह कभी असफल नहीं होगा और केवल सप्ताहों या महीनों के लिए काम करते रहेंगे, जबकि अन्य उपकरणों पर, यह कुछ दिनों तक काम करेगा, और फिर यादृच्छिक रूप से धक्का प्राप्त करना बंद कर देगा।डिवाइस स्विच होने तक डिवाइस जीसीएम को धक्का देता है

हर बार डिवाइस ने काम करना बंद कर दिया है, मैंने सत्यापित किया है कि डिवाइस के पास जीसीएम से वैध regId है, और मेरा सर्वर उस regId को धक्का भेज रहा है। हालांकि, लॉग दिखाते हैं कि डिवाइस कुछ भी प्राप्त नहीं कर रहा है।

05-15 10:39:21.091: V/GCMBroadcastReceiver(13766): onReceive: com.google.android.c2dm.intent.RECEIVE 
05-15 10:39:21.091: V/GCMBroadcastReceiver(13766): GCM IntentService class: com.medigram.v2.GCMIntentService 
05-15 10:39:21.091: V/GCMBaseIntentService(13766): Acquiring wakelock 
05-15 10:39:21.111: V/GCMBaseIntentService(13766): Intent service name: GCMIntentService-468134393228-13 
05-15 10:39:21.131: V/GCMBaseIntentService(13766): Releasing wakelock 
05-15 10:39:21.171: V/GCMBroadcastReceiver(13766): onReceive: com.google.android.c2dm.intent.RECEIVE 
05-15 10:39:21.171: V/GCMBroadcastReceiver(13766): GCM IntentService class: com.medigram.v2.GCMIntentService 
05-15 10:39:21.171: V/GCMBaseIntentService(13766): Acquiring wakelock 
05-15 10:39:21.241: V/GCMBaseIntentService(13766): Intent service name: GCMIntentService-468134393228-14 
05-15 10:39:21.271: V/GCMBaseIntentService(13766): Releasing wakelock 

इस में से कोई भी उपकरणों कि धक्का प्राप्त करने बंद कर दिया है पर दिखाई देता है और एक परिणाम के रूप, न तो मेरी GCMIntentService की विधि onMessage() कहा जाता है: यहाँ क्या एक सामान्य धक्का पर लॉग प्राप्त की तरह लग रहा है ।

अजीब बात यह है कि, जब मैं 3 जी/4 जी से वाईफाई या इसके विपरीत डिवाइस कनेक्शन स्विच करता हूं, तो यह फिर से काम करना शुरू कर देता है, और डिवाइस को सभी बैकलॉग किए गए एक बार में धक्का मिल जाता है। कनेक्शन प्रकार बदलते समय वास्तव में क्या होता है?

मामले में यह मदद करता है कोई लाभ नहीं हुआ, यहाँ कुछ चीजें मैं जिन उपकरणों पर धक्का मैन्युअल समस्या पुन: पेश करने पर काम कर रहा है की कोशिश की है रहे हैं, लेकिन:

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

- मैंने यह देखने के लिए ऐप को रोकने की कोशिश की है कि क्या यह काम करना बंद कर देगा, लेकिन इस मुद्दे को ऐप के साथ कुछ भी नहीं करना प्रतीत होता है क्योंकि यह काम करता रहता है।

- मैंने फोन को हवाई जहाज मोड पर डालने और वापस आने की कोशिश की है, लेकिन धक्का काम कर रहा है।

अगर कोई मुझे सही दिशा में इंगित कर सकता है तो मैं इसकी बहुत सराहना करता हूं, क्योंकि मैंने स्टैक ओवरफ्लो और Google पर सभी संसाधनों को बहुत थका दिया है। जब भी मैंने शुरू किया था तब भी मैं इस मुद्दे के बारे में अनजान हूं।

+2

संभव दो प्रतियों में पढ़ सकते हैं [इस] (http://stackoverflow.com/questions/13835676/google-cloud-messaging-messages- कभी-कभी- नहीं- प्राप्त-until-network-state-cha) – Eran

+0

क्या आप अपनी परियोजना के बारे में थोड़ी अंतर्दृष्टि प्रदान कर सकते हैं एट अप? क्या यह एक पुस्तकालय परियोजना है? क्या आपका ऐप लाइब्रेरी प्रोजेक्ट से जीसीएम हैंडलिंग का आह्वान करता है? जीसीएम पर आपका ऐप किस परिस्थिति में पंजीकृत है, और क्या यह कभी अपंजीकृत करता है? –

+0

क्या आपको इसके लिए कोई समाधान मिला है? यहां तक ​​कि मुझे भी एक ही समस्या का सामना करना पड़ रहा है। – keen

उत्तर

0

आम तौर पर एंड्रॉइड मोबाइल कनेक्शन पर हर 28 मिनट और वाईफ़ाई पर हर 15 मिनट में दिल की धड़कन भेजता है, ताकि आप इन दो उद्देश्यों को अपने ऐप से कम अंतराल में प्रसारित करके ठीक कर सकें।

com.google.android.intent.action.MCS_HEARTBEAT

com.google.android.intent.action.GTALK_HEARTBEAT

 Intent intent = new Intent("com.google.android.intent.action.MCS_HEARTBEAT"); 
     Intent intent1 = new Intent("com.google.android.intent.action.GTALK_HEARTBEAT"); 
     sendBroadcast(intent); 
     sendBroadcast(intent1); 

आप विस्तार here

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