向特定用户发送GCM消息

7
在我的应用程序中,我希望向特定的用户发送通知,而不考虑设备。用户可以从任何设备登录应用程序。
这是我第一次使用GCM。我阅读了文档,它说当设备向GCM服务器注册时,设备会将唯一ID发送到服务器,然后保存该值以便发送消息。
那么,当用户从不同设备登录应用程序时,如何向特定用户发送通知呢?

请参考以下链接:http://sunil-android.blogspot.in/2013/05/gcm-in-android.html。 - Sunil Kumar
1个回答

6
这个独特的ID(也称为注册ID)是针对应用/设备唯一的,因此,如果该用户在另一台设备上登录到GCM服务,则会生成另一个注册ID。
GCM服务器向Android应用程序发放的ID,允许其接收消息。一旦Android应用程序具有注册ID,它将其发送到第三方应用程序服务器,后者使用它来识别已注册以接收给定Android应用程序的消息的每个设备。换句话说,注册ID与正在特定设备上运行的特定Android应用程序绑定。
当你说“log"的时候,我认为你是指你的服务器,对吗?
我问这个问题是因为如果您的应用程序目标版本低于4 API版本,则GCM服务需要Google帐户。
在运行Android 4.0.4或更高版本的设备上,不需要Google帐户。
如果GCM检测到设备上的Google帐户,则可以访问该服务。如果GCM未检测到帐户,则返回一个ACCOUNT_MISSING错误。
因此,如果您正在使用先前已注册了Google帐户的其他设备,则可能会访问具有不属于您的Google帐户的GCM服务。
但如果重要账户是由您的服务器管理,则我认为这并不重要。
更新:
您将需要向与您的服务器连接的用户所属的所有registrationID发送通知。 如果您在服务器上维护多个设备,则无法知道用户当前正在使用哪个设备。 您可以使用多播 参考:GCM

是的。用户必须登录到我的服务器。 - Sunny
我认为我可以在我的服务器上检查用户ID和唯一ID,然后发送通知,对吗? - Sunny
只需使用唯一标识符即可发送通知,但 GCM 可能会更改它,因此您必须在数据库中更新与用户 ID 相绑定的唯一标识符。有关详细信息,请参阅我提供的链接:http://developer.android.com/google/gcm/gcm.html#server。 - AlexBcn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接