您好我想将gcm添加到我的应用程序中。我的申请是一个新闻申请。 用户可在注册后查看新闻。应用程序询问用户兴趣(经济,体育,汽车等)并保存它们。 我想通过php和mysql发送消息给用户。 我必须决定向哪些用户发送哪些新闻。所以我需要注册ID。
是android设备号吗?
或Android设备谷歌帐户和Android设备号的组合?
或Android设备谷歌帐户和Android设备号码和我的应用程序用户ID的组合?
实施例
Android设备ID = a => GCM RegID = a
Android设备ID = a, 谷歌帐户ID = b => GCM RegID = ab
Android设备ID = a,谷歌 account id = b,application x user id = c => GCM RegID = abc
如果x用户从应用程序注销并且用户登录同一设备,GCM RegId会更改吗?如果它没有改变并且我将经济新闻推送给用户(对经济不感兴趣),设备将向错误的用户显示错误的通知。 那么什么是GCM注册ID?
答案 0 :(得分:16)
注册ID是GCM为安装在Android设备上的单个应用程序的单个实例分配的标识符。设备在注册到Google Cloud Messaging时会为其分配此标识符。 GCM文档未指定此标识符中编码的信息。
在某些较旧的Android版本(4.0.4之前版本)中,需要使用Google帐户才能注册GCM。
如果多个用户在同一设备上使用相同的应用,则他们将具有相同的注册ID,因为GCM不关心哪个用户登录到应用。由您的服务器决定哪个用户当前在某个设备中登录到您的应用程序,并根据该知识仅向该设备提供相关的GCM消息。
答案 1 :(得分:9)
注册ID是特定设备上特定包的唯一标识符。 GCM使用此ID识别目标。
在你的情况下,这个id不会解决你的问题。
案例1:
如果您在注销时从GCM取消注册设备,并再次注册,则无法保证注册ID不同(可能是也可能不是)。
案例2:
GCM不时刷新注册ID。
因此,此ID不会成为识别已登录用户的解决方案。
可能的解决方案
仅将通用消息从GCM发送到设备,例如“嘿,你有新的东西,转到服务器”。现在设备将向服务器请求新项目。这里服务器将识别记录的用户并为他提供相应的数据。