什么是 GCM 注册 ID?
Posted
技术标签:
【中文标题】什么是 GCM 注册 ID?【英文标题】:What is GCM Registration ID? 【发布时间】:2014-08-27 11:30:36 【问题描述】:您好,我想将 gcm 添加到我的应用程序中。我的应用程序是新闻应用程序。 用户注册后可以查看新闻。应用程序询问用户兴趣(经济、运动、汽车等)并保存它们。 我想将新闻作为来自 php 和 mysql 的通知发送给用户。 我必须决定将哪些新闻发送给哪些用户。所以我需要注册ID。
是安卓设备号吗? 还是安卓设备谷歌账号和安卓设备号的组合? 还是 android 设备 google 帐号和 android 设备号和我的应用程序用户 id 的组合?
例子
Android 设备 id = a => GCM RegID=a Android 设备 id = a , google account id=b => GCM RegID=ab Android device id = a , google account id=b, application x user id=c => GCM RegID=abc
如果 x 用户从应用程序中注销并且 y 用户在同一设备上登录,GCM RegId 会改变吗?如果它没有改变并且我将经济新闻推送给 y 用户(对经济不感兴趣),设备将向错误的用户显示错误的通知。 那么什么是GCM注册ID呢?
【问题讨论】:
【参考方案1】:注册 ID 是 GCM 分配给安装在 Android 设备上的单个应用程序的单个实例的标识符。设备在注册到 Google Cloud Messaging 时会分配此标识符。 GCM 文档未指定此标识符中编码的信息。
在某些较旧的 Android 版本(4.0.4 之前)中,需要 Google 帐户才能注册到 GCM。
如果多个用户在同一设备上使用同一个应用,他们将拥有相同的注册 ID,因为 GCM 不关心哪个用户登录到该应用。由您的服务器确定当前在特定设备上登录到您的应用程序的用户,并根据该知识仅将相关的 GCM 消息传递到该设备。
【讨论】:
如果我卸载然后在同一设备上重新安装相同的应用程序,注册ID会不同吗?在这种情况下,我需要将注册 ID 与服务器应用上的设备唯一标识符相关联。 注册ID和token
一样吗?
@JulianA。是的,注册 ID 和注册令牌是一回事。
如果我卸载应用程序并重新安装它,那么它会改变。即使卸载后,有什么方法可以在一台设备上获得相同的 ID?
@RajanKashiyani 我不知道。我已经好几年没有和 GCM 合作了。但是,如果您在卸载后收到新的注册 ID,我认为您无法更改该行为以返回相同的 ID。【参考方案2】:
注册 ID 是特定设备上特定包的唯一标识符。 GCM 使用此 ID 识别目标。
在你的情况下,这个 id 并不能解决你的问题。
案例 1:
如果您在注销时从 GCM 中注销设备,然后重新注册,这并不能保证注册 ID 会不同(可能不同)。
案例 2:
GCM 不时刷新注册 ID。
所以这个 id 不是用来识别登录用户的解决方案。
可能的解决方案
仅从 GCM 向设备发送通用消息,例如“嘿,你有新的东西,转到服务器”。现在设备将向服务器请求新项目。服务器将在此处识别登录的用户并为他提供相应的数据。
【讨论】:
您是否有“注册 ID 是特定设备上特定包的唯一标识符。GCM 使用此 ID 识别目标”的链接?以上是关于什么是 GCM 注册 ID?的主要内容,如果未能解决你的问题,请参考以下文章