Android GCM是如何工作的?

7
我想知道安卓推送框架是如何区分通过GCM收到的数据并将其转发给相应的安卓应用程序的?请问有人知道这是如何实现的吗?
2个回答

13

你的问题是:Android推送框架如何区分通过GCM接收到的数据并将其转发到适当的Android应用程序。

根据你的问题,看起来你想了解在使用GCM服务的应用程序中存在的数据工作流程和客户端服务器架构。

根据Google的文档,“Google Cloud Messaging for Android(GCM)是一项服务,帮助开发人员将数据从服务器发送到Android设备上的其应用程序。” GCM是Google为开发人员提供的一项服务,帮助开发人员将数据从服务器发送到任意数量的Android设备。

简化的应用程序特定工作流程:

当需要发送有关营销活动的通知时,可以向广大受众广播推送通知。当需要发送个性化信息时,可以针对一组用户进行目标定向。

Simplified Application Specific Work-flow

以下步骤说明了Android设备上的推送通知如何工作:

  1. 首先,Android设备向GCM服务器发送发件人ID、应用程序ID以进行注册。
    1. 注册成功后,GCM服务器向Android设备发放注册ID。
    2. 在接收到注册ID后,设备将其发送到我们的服务器。
    3. 我们的服务器将注册ID存储在数据库中以备进一步使用。
    4. 每当需要推送通知时,我们的服务器会将消息与之前存储在数据库中的设备注册ID一起发送到GCM服务器。
    5. GCM服务器将使用设备注册ID将该消息传递给相应的移动设备。

以下图片也可以帮助理解: enter image description here

一个示例工作流程: 示例工作流程

因此,从上面的图片可以很容易地理解,每当用户首次安装Android应用程序时,它就会向GCM服务器注册自己,并获得唯一的GCM ID,然后我们的主机服务器有责任将此新注册的Android用户的Registration ID保存在数据库中,以便在服务器端应用程序希望向特定的Android用户发送消息时使用。

那么,让我们考虑一个案例。假设一个服务器想要向已经注册了GCM ID 1234567的Android用户发送一些数据,而且因为该ID已经存在于服务器的数据库中,所以服务器应用程序将从数据库中获取它,并简单地以JSON格式向GCM服务器发出HTTP POST请求,其中包括注册用户的GCM ID和要发送的数据。同样,GCM服务器记录有所有已注册的GCM / Android客户端的记录,直接将该消息转发到目标Android用户,用户手机上的Android应用程序将弹出通知提醒,表示推送通知已到达。

希望这回答了您的问题!


0

GCM 代表 Google Cloud Messaging。 任何 Android 设备上接收到的每个推送通知都是由 GCM 发送的。

发送者 -> GCM -> Android 设备

当发送者发送推送通知时,它会发送到 GCM。GCM 接收该推送并通过其唯一设备 ID 将其转发到特定的 Android 设备。

GCM 无法在没有唯一设备 ID 的情况下传递推送。

在实现推送通知时,有两个重要的事项,应用程序密钥和服务器密钥...这些是唯一的密钥..使用这些密钥,GCM 可以识别与推送通知相关的应用程序


我在这里询问的是,安卓设备如何确定推送消息是针对特定应用程序的? - del_champ
在实现推送通知时,有两个重要的东西,应用程序密钥和服务器密钥...这些是唯一的标识符..使用这些密钥,GCM可以识别与推送相关的应用程序。 - Dnyanesh
如果您对我的答案满意,请接受并点赞。 - Dnyanesh

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