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