2012-07-31 9 views
12

मैं एक जीसीएम आवेदन विकसित कर रहा हूं। जब डिवाइस निष्क्रिय नहीं होता है तो सब ठीक काम करता है (यानी पावर बटन दबाने से सो रहा है)। हालांकि, जब डिवाइस निष्क्रिय होता है तो संदेश संदेश भेजता है तो डिवाइस जागता नहीं है।जीसीएम डिवाइस को जागृत नहीं कर रहा है

मैं निम्नलिखित किया है:

  1. सत्यापित है कि delay_while_idle सर्वर अनुप्रयोग में सही पर सेट नहीं है
  2. प्रत्येक संदेश
  3. डिवाइस रिबूट के लिए एक अलग संक्षिप्त कुंजी प्रयुक्त कई बार
  4. सर्वर पक्ष से पूरी तरह से delay_while_idle को छोड़ने का प्रयास किया - इसका कोई प्रभाव नहीं है

I एंड्रॉइड 2.2 एपीआई लेवल 8 (निम्नतम संस्करण) को लक्षित कर रहा है, एंड्रॉइड 2.3.6

डिवाइस वाई-फाई का उपयोग कर रहा है, कोई सिम कार्ड नहीं है - लेकिन चलते समय संदेश ठीक हो जाता है और निष्क्रिय नहीं होता है।

इस ग्राहक प्रकट अनुमति अनुभाग है:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<permission 
    android:name="com.tranwall.sdk.device.android.permission.C2D_MESSAGE" 
android:protectionLevel="signature" /> 
<uses-permission android:name="basePackage.android.permission.C2D_MESSAGE" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />   
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

किसी भी मदद प्रकट फ़ाइल के भीतर

उत्तर

4

समस्या निम्नलिखित यकीन only.Make के लिए अग्रिम धन्यवाद मैनिफ़ेस्ट फ़ाइल GCM की सामग्री हैं

<permission 
    android:name="packagename.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="packagename.permission.C2D_MESSAGE" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<application> 
    <receiver 
     android:name="com.google.android.gcm.GCMBroadcastReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
      <category android:name="packagename" /> 
     </intent-filter> 
    </receiver> 
    <service android:name=".GCMIntentService" android:enabled="true" /> 
</application> 
+0

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

+0

तक नहीं जगाते हैं इसलिए निष्क्रिय मोड में भी आपको संदेश मिल रहा है मैसेज() विधि वहां सेवा आप कुछ पोस्ट कोड लिख सकते हैं जो इस पोस्ट में है http://stackoverflow.com/questions/5215367/android-how-can-i-wake-up-the-phone-from-a-hard-sleep- टू-टेक-ए-पिक्चर – koti

+0

धन्यवाद, मैं ऐसा करने की कोशिश करने जा रहा हूं - मैं बस इस धारणा के तहत था कि जब संदेश – Will777

4

delayWhileIdle=false

delay_while_idle: यदि शामिल है, तो इंगित करता है कि डिवाइस निष्क्रिय होने पर संदेश तुरंत नहीं भेजा जाना चाहिए।
सर्वर डिवाइस के सक्रिय होने की प्रतीक्षा करेगा, और फिर प्रत्येक * collapse_key * मान के लिए केवल अंतिम संदेश भेजा जाएगा। वैकल्पिक। डिफ़ॉल्ट मान गलत है, और JSON बूलियन होना चाहिए।

2

सर्वर पक्ष को इस कोड की आवश्यकता है;

builder.delayWhileIdle(false); 

इसका मतलब यह है कि गहरी नींद पर फोन नहीं उठता है। लेकिन संदेश मिला।

तब उपयोगकर्ता फोन जागने पर, GCMIntentService के लिए नया इरादा उत्पन्न हुआ।

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