Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GCM收到新注册ID或现有ID无效的通知?_Android_Google Cloud Messaging - Fatal编程技术网

Android GCM收到新注册ID或现有ID无效的通知?

Android GCM收到新注册ID或现有ID无效的通知?,android,google-cloud-messaging,Android,Google Cloud Messaging,我使用的是谷歌云消息,每个设备的注册ID都没有问题。 然而,根据谷歌的文档,如果设备获得新的操作系统,或者出于任何其他原因,注册ID可能会改变 所以我的问题是,既然注册ID是由Google提供的,有没有一种方法可以得到某种通知或回调,说现有的注册ID无效,或者有一个新的注册ID,而不必在每次应用程序启动时都获得一个新的注册ID 我还可以设置一个计时器,每X天只获取一次注册ID,但我想知道是否有人找到了一种方法来检查现有存储的注册ID是否对该设备仍然有效,而无需致电谷歌查询注册ID 谢谢。如果没有

我使用的是谷歌云消息,每个设备的注册ID都没有问题。 然而,根据谷歌的文档,如果设备获得新的操作系统,或者出于任何其他原因,注册ID可能会改变

所以我的问题是,既然注册ID是由Google提供的,有没有一种方法可以得到某种通知或回调,说现有的注册ID无效,或者有一个新的注册ID,而不必在每次应用程序启动时都获得一个新的注册ID

我还可以设置一个计时器,每X天只获取一次注册ID,但我想知道是否有人找到了一种方法来检查现有存储的注册ID是否对该设备仍然有效,而无需致电谷歌查询注册ID


谢谢。

如果没有两个项目进行比较,恐怕是不可能的。我要做的是将GCM id存储到SharedReferences中,然后比较Google在注册时提供给我的当前GCM id,然后确定注册id是否仍然有效,这就是GCM文档建议的操作。

是的,这显然是一个不错的选择,但我试图避免打电话给谷歌获取注册ID。我基本上想假设我当前的注册ID是有效的,除非有什么通知我不是。但我希望这是一个本地的东西,而不是另一个额外的网络呼叫。这就是我想在我的回答中澄清的:唯一能确定你的ID是否仍然有效的是谷歌,你可能只有通过调用注册方法才能知道这一点。如文档所述,没有一个明确的事件会使现有ID无效:没有大致的过期日期,也没有类似的东西,所以我想剩下的唯一一件事就是这样做。