LKM*_*LKM 40 android registration google-cloud-messaging
我成功测试了我的GCM代码.
但完全相同的代码,我无法得到GCM推送并得到:
GCM错误:未注册.
Sam*_*mik 52
GCM响应Not Registered意味着"如果是NotRegistered,您应该从服务器数据库中删除注册ID,因为应用程序是从设备上卸载的,或者没有配置广播接收器来接收com.google.android.c2dm.intent.RECEIVE意图".来自文档.检查从设备上卸载应用程序或在AndroidManifest中描述错误的广播接收器时出现此错误的情况.您可以使用我的测试GCM服务器测试GCM功能.希望,这对你有所帮助.
小智 18
如果您正在使用设备进行测试,则需要在获取令牌并重新测试之前删除InstanceID,因为一旦覆盖了APK,它就会取消注册InstanceId并导致NotRegistered错误.因此,在您的RegisterIntentService类中,在onHandleIntent函数中执行以下操作:
InstanceID instanceID = InstanceID.getInstance(this);
try
{
instanceID.deleteInstanceID();
} catch(IOException e)
{
e.printStackTrace();
}
instanceID = InstanceID.getInstance(this);
Run Code Online (Sandbox Code Playgroud)
Not RegisteredGCM认为设备无法处理消息时会发生这种情况.如果应用程序被卸载或配置错误以处理消息,则会发生这种情况:
基于@Samik和@ O'Rilla的答案,我建议采取以下步骤:
<receiver>和<sender>中定义<application>节点AndroidManifest.xml.<category android:name="COM.COMPANY.YOURAPP" />你<receiver>如果你真的认为你的代码是正确的,仍然会出错
{"error": "NotRegistered"}
Run Code Online (Sandbox Code Playgroud)
尝试从手机上手动取消安装应用程序并再次运行(您的设备将获得新的注册ID).
至少在我的情况下问题解决了!
| 归档时间: |
|
| 查看次数: |
50525 次 |
| 最近记录: |