2013-03-26 7 views
8

मैं एक रहस्यमय समस्या पर थोड़ी देर के लिए अटक कर रहा हूँ। तो मैं अपने Android एप्लिकेशन में GCM लागू किया, लेकिन मैं एक INVALID_SENDER त्रुटि प्राप्त।GCM प्रेषक का अमान्य त्रुटि

  • मेरा SENDER_ID Google प्रोजेक्ट के यूआरएल से आईडी है।
  • एंड्रॉयड पुश नोटिफिकेशन हैं पर

इस बारे में अजीब बात यह है कि मैं पहले से ही एक पंजीकरण आईडी पर सूचनाएं भेजना होता है। तो मेरे कंसोल इस तरह दिखता है:

03-26 09:39:20.233: I/<test>(19761): Already registered: APA91bG6- O3OnZt50EAjYvJ5KETv3qAlPOn2SfOPXez7SLAmaAOkHTN6EMDJb91gFIWkftZkJiub6UoEk4O- WQP7kk2oZGQjZ1VCZZS0WddQtjFaCfYfZfb7SEw3IS1sd4caJcdZE4LA1F0hxzc7Ss1UiYHXX-XXXX 
03-26 09:48:23.522: I/<test>(19925): GCMIntentService 
03-26 09:39:20.670: I/<test>(19761): on Error INVALID_SENDER 

onCreate के अंदर:

GCMRegistrar.checkDevice(this); 
GCMRegistrar.checkManifest(this); 
final String regId = GCMRegistrar.getRegistrationId(this); 
if (regId.equals("")) { 
    Log.i("<test>", "registering"); 
     GCMRegistrar.register(this, "2194354949XX"); 
} else { 
    Log.i("<test>", "Already registered: " + regId); 
} 

broadcastreceiver:

public class GCMBroadcastReceiver extends com.google.android.gcm.GCMBroadcastReceiver{ 
    @Override 
    protected String getGCMIntentServiceClassName(Context context){ 
     return "be.XXX.XXX.system.GCMIntentService"; 
    } 
} 

GCMIntentService:

+०१२३५१६४१०६
public class GCMIntentService extends GCMBaseIntentService { 
    @Override 
    protected void onError(Context arg0, String errorId) { 
     Log.i("<test>","on Error " + errorId); 
    } 

    @Override 
    protected void onMessage(Context arg0, Intent intent) { 
     Log.i("<test>","onMessage " + intent.getExtras().toString()); 
    } 

    @Override 
    protected void onRegistered(Context arg0, String regId) { 
     Log.i("<test>","Registration id: " + regId); 
    } 

    @Override 
    protected void onUnregistered(Context arg0, String regId) { 
     Log.i("<test>","onUnregistered " + regId); 
    } 

    public GCMIntentService() { 
     super("2194354949XX"); 
     Log.i("<test>","GCMIntentService "); 
    } 
} 

मैनिफ़ेस्ट:

<permission 
    android:name="com.XX.XX.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="com.smstiming.hezemans.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.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 



<receiver android:name="be.XX.XX.system.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="com.smstiming.hezemans" /> 
     </intent-filter> 
    </receiver> 

<service android:name="be.XX.XX.system.GCMIntentService" /> 
+1

लॉग के लिए देखो '03-26 11: 23: 38.704: वी/जीसीएम रेगेस्टार (1389): प्रेषक के your.packagename.com को ऐप पंजीकृत करना XXXXXX' वास्तविक XXX प्रेषक है जो Google को भेजता है! – madlymad

+0

आपने मुझे सही दिशा में मदद की। यह अभी तय है। पुराने C2DM संस्करण को बंद करने के लिए भूल गए-_- – Zillan

उत्तर

0

C2DM सेवा बंद करने के लिए भूल। बेवकूफ मुझे ..

+1

यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। – fedorqui

+0

मैं लेखक हूं। :-) – Zillan

+4

क्या आप सी 2 डीएम सेवा को बंद करने के लिए भूल गए हैं इसका अर्थ स्पष्ट कर सकते हैं? इसे बंद करने के लिए आपको क्या करना है? –

0

हो सकता है कि आपके SenderID सच नहीं है। आप GCMIntentService वर्ग के लिए निर्माता बना सकते हैं और super(<SenderId>) फोन करना चाहिए।

10

अंत में इस के आसपास मिला है। गलती से 'परियोजना संख्या' के बजाय 'परियोजना आईडी' का उपयोग करने की कोशिश कर रहा था। Google डेवलपर कंसोल अवलोकन पृष्ठ पर दोनों प्रदान करता है, सुनिश्चित करें कि आप सही का उपयोग कर रहे हैं।

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