什么是GCM注册ID?

sip*_*rus 10 android push-notification google-cloud-messaging

您好我想将gcm添加到我的应用程序中.我的申请是一个新闻申请.用户可在注册后查看新闻.应用程序询问用户兴趣(经济,体育,汽车等)并保存它们.我想通过php和mysql发送消息给用户.我必须决定向哪些用户发送哪些新闻.所以我需要注册ID.

是android设备号吗?或Android设备谷歌帐户和Android设备号码的组合?
或Android设备谷歌帐户和Android设备号和我的应用程序用户ID的组合?

Android设备ID = a => GCM RegID =
Android设备ID = a,Google帐户ID = b => GCM RegID = ab
Android设备ID = a,Google帐户ID = b,应用x用户ID = c => GCM RegID = ABC

如果x用户从应用程序注销并且用户登录同一设备,GCM RegId会更改吗?如果它没有改变并且我将经济新闻推送给用户(对经济不感兴趣),设备将向错误的用户显示错误的通知.那么什么是GCM注册ID?

Era*_*ran 16

注册ID是GCM为安装在Android设备上的单个应用程序的单个实例分配的标识符.设备在注册到Google Cloud Messaging时会为其分配此标识符.GCM文档未指定此标识符中编码的信息.

在某些较旧的Android版本(4.0.4之前版本)中,需要使用Google帐户注册GCM.

如果多个用户在同一设备上使用相同的应用程序,则它们将具有相同的注册ID,因为GCM不关心哪个用户登录到应用程序.由您的服务器决定哪个用户当前在某个设备中登录到您的应用程序,并根据该知识仅向该设备提供相关的GCM消息.


Pan*_*mar 9

注册ID是特定设备上特定包的唯一标识符.GCM使用此ID标识目标.

在你的情况下,这个id不会解决你的问题.

情况1:

如果您在注销时从GCM取消注册设备,并再次注册,则不保证注册ID将不同(可能是也可能不是).

案例2:

GCM不时刷新注册ID.

所以这个id不会成为识别登录用户的解决方案.


可能解决方案

仅将通用消息从GCM发送到设备,例如"嘿,你有新的东西,转到服务器".现在设备将向服务器请求新项目.这里服务器将识别记录的用户并给他相应的数据.