我的应用程序有一个奇怪的问题-我有两个设备可以测试它。一个是4.4.4,第二个是4.0.4。我做了一个应用程序,使用了GCM。两部手机都没问题。然后我做了第二个,其中有一个GCM模块的副本粘贴从第一个,没有任何变化。
现在,当我向kitkat手机发送gcm消息时,它会毫无问题地接收到它。但我不能在第二个电话里接。它根本不注册(broadcastReceiver不接收任何内容)。一直以来,第一个应用程序仍然工作正常。两款手机都通过adb安装了精确的apk。
我将GCM注册ID存储在手机中,但当我在Kitkat上运行应用程序时,收到一个ID,关闭应用程序,删除数据,再次运行它-我第二次获得不同的ID。这不会发生在第二部手机上,这让我相信谷歌方面出现了某种错误。
我偶然发现了这条线索,可能是在处理同一个问题-GCM not working on Gingerbread, but is working on Ice Cream Sandwich。我试着重新安装应用程序,但没用,我仍然得到旧的(非工作)gcm id。
我无法在一部手机上接收GCM信息,而同一个应用程序在另一部手机上运行。可能是注册GCM的问题。重新安装后,我仍然得到相同的GCM ID。如何强制谷歌给我一个新的?
编辑:下面的答案提供了所需的信息,但没有解决问题。我将打开另一个线程,以避免误导标题。
最佳答案
我不认为获取新的注册ID可以解决您的问题,但我使用以下方法获取新的注册ID:
卸载应用程序。
向旧的注册ID发送GCM消息。重复此步骤,直到从Google得到的响应中出现NotRegistered
错误。
再次安装应用程序,它应该重新注册到gcm,这次你应该得到一个新的注册id。
关于android - 如何强制设备获取新的GCM ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24944485/