android - 关于 GCM 注册的文档不一致

标签 android push-notification google-cloud-messaging

GCM Advanced Topics ,在为什么你应该很少取消注册 标题下,有两个关于注册的说法似乎相互矛盾。

首先:

"A regID maps an app to a device. It isn't associated with a particular logged in user."

我认为映射是一一对应的(或者应该是)。

第二:

"Your app server should maintain a mapping between the current user and the regID."

但是,第一个声明断言没有这样的关联。 (大概“当前用户”是 使用应用服务器“登录”,但文档没有指定这一点。)

我的问题是文档是否应该修改如下:

  1. GCM 维护从 regID 到设备的映射。 [术语“映射”最有可能表示函数关系,但未具体说明。]

  2. GCM 不维护从 regID 到当前用户的映射。

  3. 假定当前用户与 regID 之间存在一对一的对应关系。
  4. 您的(第 3 方)应用程序服务器应维护当前用户和 regID 之间的映射。

开发人员如何解释第一条和第二条语句?

最佳答案

我看不出有什么矛盾。如第一个引述所述,为每台设备上的每个应用程序分配了一个注册 ID(这意味着同一设备上的不同应用程序具有不同的注册 ID,而在不同设备上同一应用程序具有不同的注册 ID)。

由于 GCM 不关心哪个用户登录到特定设备上的特定应用程序(这样的登录是 GCM 一无所知的应用程序特定逻辑),具有登录功能的应用程序应该保持跟踪(在用户当前在每个设备上登录的第 3 方服务器),并将注册 ID 与该用户相关联(以便服务器仅将与该用户相关的 GCM 消息发送到用户登录的设备) .

至于你写的语句:

  1. 这是不准确的。映射(如谷歌所述)在应用程序和设备之间。
  2. 正确
  3. 这取决于特定应用程序的逻辑来确定(应用程序不一定具有登录功能)。
  4. 这是真的,假设应用程序具有登录功能。

关于android - 关于 GCM 注册的文档不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833358/

相关文章:

android - 当设备无法从 GCM 接收消息时执行某些操作

amazon-web-services - AWS 移动推送通知示例

android - 谷歌 GCM android 崩溃(java.lang.NoClassDefFoundError : com. google.android.gms.R$string)

java - 使用 Mapbox Android SDK 绘制圆形红色标记

android - 替换括号内的字符

ios - 为什么静默推送通知在 iphone sdk 后台无法正常工作

iphone - 与推送通知的声音有关的问题

android - GCM API key 应该保密吗?

android - 在不使用完全限定类名的情况下使用 XML 中的自定义 View

java - 如何将静态日志文件包含到 Android 应用程序中,该文件在关闭应用程序时不会被删除?