从应用服务器

时间:2015-11-11 12:07:35

标签: android google-cloud-messaging

我们正在开发IOS和Android应用程序。已为IOS启用GCM推送通知,其工作正常。两个平台的软件包名称都是相同的。

ios开发人员给了我SERVER API KEY和SENDER ID来为android设置gcm。在寻找步骤时,我遇到了https://developers.google.com/cloud-messaging/android/client

我一直认为需要完成内容中列出的步骤来设置GCM for android(如果我错了请纠正我)。

  1. 获取Config文件并将其添加到Android项目
  2. 设置Google Play服务(我在项目依赖项中添加了gcm)
  3. 向清单文件添加条目
  4. 检查Google Play服务APK
  5. 获取注册令牌。
  6. “Android应用程序需要先注册GCM连接服务器才能接收消息”

    “客户端应用程序应存储一个布尔值,指示是否已将注册令牌发送到服务器。” - 我的后端团队告诉我,我不需要发送任何我只需要在应用程序中配置gcm,应用程序将从后端接收消息。

    所以,我的问题是我是否需要注册RegisterIntentService和MyInstanceIDListenerService。另外,我是否必须在Manifest中定义我的InstanceIDListenerService?

    我们的后端使用设备ID向设备发送推送通知,因此当我们发送设备ID时,他们不需要将注册令牌发送给他们。那么在这种情况下,我应该使用RegistrationIntentService和InstanceIDListenerService向GCM注册我的应用程序吗?如果是这样,应用程序应该保留注册令牌。这需要注册吗?

1 个答案:

答案 0 :(得分:1)

GCM支持三种类型的下游(服务器到客户端)消息传递:发送到特定设备(也称为“简单”或“目标”),发送到主题或发送到设备组。您的问题是,“我们的后端使用设备ID向设备发送推送通知”。目前尚不清楚“设备ID”是什么以及您打算使用哪种类型的消息。你的后端团队告诉你,你“不需要发送任何东西”。如果这是真的,我不知道他们在哪里获得“设备ID”。

GCM提供的三种类型的消息传递中的每一种都要求客户端设备向GCM注册并获取注册令牌。要将消息发送到特定设备,注册令牌实际上是“设备ID”。是的,您需要实现与documentation中描述的RegistrationIntentServiceInstanceIDListenerService类似的内容。

有关需要将注册令牌发送到App Server的文档中的描述具有误导性。这只是目标消息传递所必需的。 documentation for receiving topic messages表示:“请注意,对于主题消息传递,不需要将注册令牌发送到您的应用服务器;但是,如果您确实发送了它,您的服务器可以验证令牌的有效性并获取有关创建它的应用程序。“