Android GCM仅在Lollipop上未注册

时间:2016-01-19 04:47:06

标签: android google-cloud-messaging android-5.0-lollipop

我目前正在尝试在我的应用上使用GCM。我已经尝试向已经安装了我的应用程序的几款Android手机发送推送通知,并且大多数都可以正常工作,但Lollipop除外,它给了我以下错误:

{"multicast_id":6609164900208197699,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}

修改

对不起大家,正如许多人所说的那样,这不是因为棒棒糖。我认为这是因为新的GCM方法使得注册ID有时会发生变化。我还没有实施onTokenRefresh()

3 个答案:

答案 0 :(得分:0)

在Log cat和Cross中跟踪设备令牌,从您保存的位置和Log cat中检查设备令牌。我认为您可能使用了错误的设备令牌来发送推送通知。

答案 1 :(得分:0)

它不像Lolipop或其他设备。您得到的响应清楚地表明该设备未在GCM服务器上注册。

通过添加断点检查您的GCM设备注册码,您可能会将设备ID保存在共享的首选项中。清除应用程序的数据和缓存并运行应用程序。你的GCM应该注册。

答案 2 :(得分:0)

您可能需要参考此documentation来了解NotRegistered错误的含义以及您可以执行的可能的操作过程。我认为这与你正在使用的Android版本没有关系。

  

未注册的设备

     

200 +错误:未注册

     

现有的注册令牌可能在许多情况下停止有效,包括:

     
      
  • 如果客户端应用程序取消注册GCM。
  •   
  • 如果客户端应用程序自动取消注册,则可能会在用户卸载应用程序时发生。例如,在iOS上,如果APNS反馈服务将APNS令牌报告为无效。
  •   
  • 如果注册令牌过期(例如,Google可能决定刷新注册令牌,或者iOS设备的APNS令牌已过期)。
  •   
  • 如果客户端应用程序已更新,但新版本未配置为接收消息。
  •   
     

对于所有这些情况,请从应用服务器中删除此注册令牌,然后停止使用它来发送消息。