Android c2dm自动注销
当我向设备发送通知时,该设备会收到推送消息,但它会收到“com.google.android.c2dm.intent.REGISTRATION”意图,而不是“com.google.android.c2dm.intent.receive”。 如果我尝试发送第二个通知,我会从谷歌收到“NotRegistered”错误 该设备得到了良好的注册(我猜),因为我得到了身份验证令牌“APA91…-119个字符-” 以下是我开始注册设备的代码:Android c2dm自动注销,android,android-c2dm,Android,Android C2dm,当我向设备发送通知时,该设备会收到推送消息,但它会收到“com.google.android.c2dm.intent.REGISTRATION”意图,而不是“com.google.android.c2dm.intent.receive”。 如果我尝试发送第二个通知,我会从谷歌收到“NotRegistered”错误 该设备得到了良好的注册(我猜),因为我得到了身份验证令牌“APA91…-119个字符-” 以下是我开始注册设备的代码: Intent registrationIntent = new
Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
registrationIntent.putExtra("sender", "EMAIL");
startService(registrationIntent);
发送者(这在Android设备中完成):
我在设备上执行推送通知,因为如果我在服务器端执行推送通知,我总是会收到“InvalidRegistration”错误
奇怪的是,我似乎注册了,但当我发送一条推送消息时,就像谷歌注销了设备一样
有什么想法/建议吗 有时候,解决方案就在你面前,而你却看不到,对于那些和我有同样问题的人来说,问题就在清单上,我写不好包名我也有同样的问题,并解决了它 这是错误的代码
<receiver android:name=".MyC2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.package.myapp" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.permission.RECEIVE" />
<category android:name="com.package.myapp" />
</intent-filter>
</receiver>
然后它就正常工作了
所以RECEIVE的包名是错误的
正确代码
<receiver android:name=".MyC2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.package.myapp" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.package.myapp" />
</intent-filter>
</receiver>
我改进了代码,现在,我在我的服务器(php)中执行ac2dm服务,但响应是相同的,在我收到注销请求的设备上。代码与这里相同:我也面临同样的问题。。请帮助我,你能提供更多信息吗?我也经历过同样的问题。我的舱单上没有发现任何问题。
<receiver android:name=".MyC2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.package.myapp" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.permission.RECEIVE" />
<category android:name="com.package.myapp" />
</intent-filter>
</receiver>
com.google.android.c2dm.permission.RECEIVE => com.google.android.c2dm.intent.RECEIVE
<receiver android:name=".MyC2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.package.myapp" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.package.myapp" />
</intent-filter>
</receiver>