나는 신비한 문제에 잠시 머물러 있습니다. 내 안드로이드 앱에서 GCM을 구현했지만 INVALID_SENDER 오류가 발생합니다.GCM 잘못된 발신자 오류
- 내 SENDER_ID는 (는) Google 프로젝트 URL의 ID입니다.
- 안드로이드 푸시 알림은
에 대한 이상한 것은 내가 이미 알림을 보낼 수있는 등록 ID를 가지고있다 있습니다. 그래서 내 콘솔은 다음과 같습니다 다음에서 onCreate 내부
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
:
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);
}
브로드 캐스트 리시버 :
public class GCMBroadcastReceiver extends com.google.android.gcm.GCMBroadcastReceiver{
@Override
protected String getGCMIntentServiceClassName(Context context){
return "be.XXX.XXX.system.GCMIntentService";
}
}
GCMIntentService :
,451,515,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" />
'03-26 11 : 23 : 38.704 : V/GCMRegistrar (1389) : 발신자의 your.packagename.com 등록 XXXXXX'은 (는) Google에 보내는 실제 발신자입니다. – madlymad
당신은 올바른 방향으로 저를 도왔습니다. 이제 해결되었습니다. 이전 C2DM 버전을 끄는 걸 잊었습니다. -_- .. – Zillan