我在安卓上使用GCM。
我使用InstanceID.getInstance(...).getToken(...)来接收推送令牌,但是在某些情况下(在应用程序更新或重新安装之后),我会收到一个无效的令牌。
当服务器返回一个NotRegistered错误时,我已经连接了一个调试器并调用了InstanceID.getInstance(...).getToken(...)。但是这个令牌无效(我试图使用这个令牌通过curl -s "https://android.googleapis.com/gcm/send" ...发送推送),我收到了NotRegistered错误。
为什么instanceID可以返回无效令牌?
发布于 2016-04-13 10:18:32
最后,我找到了一个解决办法。
我使用来自两个不同线程的instanceID。我同时给getToken(...)打了两次电话。如果实例没有缓存,则从网络中获取令牌。我想,在我的情况下,它发出了两次请求,而且无法保证它的订单。因此,instanceID缓存了一个令牌,而谷歌云了另一个令牌。
发布于 2016-04-11 11:03:58
它不应该给出无效的令牌。
你申请了所有的程序了吗?
https://stackoverflow.com/questions/36546376
复制相似问题