1

我想知道如果我从同一台设备上多次在 gcm 上注册我的 android 应用程序,我每次都会获得不同的注册 ID,还是注册后会获得相同的注册 ID?

来到我的第二个问题,如下所示

  • 如果 user1 注销并且 user2 在同一设备上登录应用程序。现在假设从服务器发送 user1 的通知。如果是,user2 是否会收到该通知,那么如何避免呢?

  • 如果 user1 已登录应用程序但 user2 重新安装应用程序并登录但服务器仍认为 user1 已登录该设备,因此当我们将通知发送给 user1 时,它将被传递给 user2。这些如何处理?

  • 如果我的 Android 应用程序尝试在 gcm 上注册多次,它会获得不同的注册 ID 还是相同的注册 ID?

4

1 回答 1

1

AFAIK,这将由 GCM 处理,但如本论坛所述,解决方案是在客户端过滤它们。您的 GCM 通知应该传递给哪个用户。然后在您的onReceive方法中,您应该检查谁当前登录。

对于您的最后一个问题,根据文档 -注册:客户端应用程序

如果客户端应用程序中的错误触发同一设备的多个注册,则可能难以协调状态并且客户端应用程序最终可能会收到重复的消息。

实施规范 ID 可以帮助您更轻松地从这些情况中恢复。规范注册 ID 是客户端应用程序请求的最后一次注册的注册令牌。这是服务器在向设备发送消息时应使用的 ID。

如果您尝试使用旧的注册令牌发送消息,GCM 将照常处理请求,但它会在响应的 registration_id 字段中包含规范 ID。确保使用此规范 ID 替换存储在服务器中的注册令牌,因为最终旧的注册令牌将停止工作。

于 2017-02-28T22:01:11.967 回答