2013-04-23 70 views
1

我已经在我的应用程序中实现GCM和我的设备重新安装app.I后得到两个警报已经阅读有关规范的ID,但它真的很难找到关于如何使用信息它或如何/在哪里实施它。 Google的文档有时非常模糊,并没有提供示例。这是我如何进行正常注册以获取regID。Android的 - 如何实现规范的ID为GCM防止重复

GCMRegistrar.register(this, getString(R.string.gcm_project_id)); 

我是否更改此代码以发送规范注册,如果是的话如何?我的服务器是不会告诉我有什么典型的IDS它总是说成功3(应该是2对其他设备)和Canonical 0,所以没有办法对我来说,更新数据库,因为它不会让我知道有一个欺骗。

回答

0

你是混合的东西,这个调用接受来自谷歌API控制台所采取的发件人ID。注册ID通过GCMBaseIntentService中的onRegistered方法发送给您,您应该将其发送给服务器,以便您可以在推送通知发送中使用它。现在,如果您有一个旧的注册ID,则Google会在发送服务的响应中向您的服务器发送更新后的注册ID AKA Canonical id。

+1

我想我现在明白了,但它是一个有点混乱。我没有得到通知,我有一个重复,因为我的服务器以某种方式注册了两次ID,所以它在技术上是相同的ID只是用了两次发送消息。所以这就是为什么规范ID在响应中表示0。有时候事情对我来说并不是很清楚,尽管我读了几个SO问题。感谢您的回应。 – 2013-04-23 11:29:04

+0

@Mahdi赫加不工作的我来说,我已经发送的消息既旧的应用程序“REG_ID”并重新安装应用程序“REG_ID”但对于旧的应用程序GCM节目{错误:“NotRegistered”},和“canonical_ids:0,我仍没有得到canonical_ids你能告诉我为什么它不适合我? – 2016-07-28 14:05:27

0

一切都是我们需要更新现有的注册ID,在服务器规范的ID在这里我们存储。您CA使用这个答案Update Canonical Id