GCM:在多个设备上使用相同的帐户 - 会发生啥?

Posted

技术标签:

【中文标题】GCM:在多个设备上使用相同的帐户 - 会发生啥?【英文标题】:GCM: Using same account on multiple devices - what happens?GCM:在多个设备上使用相同的帐户 - 会发生什么? 【发布时间】:2014-12-20 01:23:50 【问题描述】:

我有一个关于 Google 云消息传递的问题。

当我在两个具有相同谷歌帐户的不同谷歌安卓设备上安装相同的应用程序时,两者都会在 gcm 中注册自己。我将他们的 regId 存储在服务器上。

但是当我向其中一个 regid 发送消息时会发生什么 - 第二个也会收到消息吗? -其中一个regid是规范的吗? (因为设备上的 Google 帐户与其他设备相同 - 或者它们的处理方式完全不同?)

【问题讨论】:

【参考方案1】:

当我向其中一个 regid 发送消息时会发生什么 - 第二个也会收到消息吗?

嗯,不。这是因为 GCM 不仅会考虑您在手机上使用的 Google 帐户,还会识别特定设备和您在其上运行的特定应用程序。 GCM id 对于任何给定设备上的任何给定应用程序都是唯一的。这就是云如何识别将通知推送到哪个设备的方式。因此,即使您使用同一个帐户登录两个不同的设备,它们也会使用不同的密钥进行注册。您使用此密钥来识别单个设备/应用程序。

转至official documentation 以获取完整信息。

【讨论】:

【参考方案2】:

听起来您想使用User Notifications。文档非常简单。基本上,您需要在服务器端做一些工作,将多个注册 ID 映射到一个“notification_key”,然后在推送到 Google 时使用此密钥。

Google 会处理向多个设备的推送,甚至会为您做一些不错的同步类型的事情。

【讨论】:

以上是关于GCM:在多个设备上使用相同的帐户 - 会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

GCM 无法使用公司 Google 帐户

Firebase:防止在多个设备上使用相同的帐户

GCM 在服务器上多次收到相同的消息

当您将应用服务器从 GCM 迁移到 FCM 时,旧客户端会发生啥情况?

GCM - 多个通知

C2DM 关闭 - 如果仍然使用 C2DM API for GCM 会发生啥?