Android GCM的工作原理是什么?

时间:2016-08-07 08:36:18

标签: android google-cloud-messaging

我想知道android push框架如何能够区分通过GCM收到的数据并将其转发到适合它的应用程序?

任何人都可以让我知道它是如何完成的吗?

2 个答案:

答案 0 :(得分:7)

你提问: android推送框架如何区分通过GCM收到的数据并将其转发到相应的Android应用程序。

  

从您的问题看起来您似乎愿意了解数据   工作流程&应用程序中存在的Client Server体系结构   正在使用GCM服务。

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

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

  

推送通知可以向大众播放   或一组选定的用户。大众观众的目标是   必须发送有关营销活动的通知。一个子集   当必须发送个性化信息时,用户就会成为目标。

Simplified Application Specific Work-flow

以下步骤说明了推送通知如何在Android设备上运行:

  1. 第一个Android设备将发件人ID,应用程序ID发送到GCM服务器 注册
    1. 注册成功后,GCM服务器会向Android设备发出注册ID。
    2. 收到注册ID后,设备会将注册ID发送到我们的服务器。
    3. 我们的服务器会将注册ID存储在数据库中以供进一步使用。
    4. 每当需要推送通知时,我们的服务器会向设备注册ID发送一条消息给GCM服务器(即 存储在数据库的早期。)。
    5. GCM服务器将使用设备注册ID将该消息传递给受尊敬的移动设备。
  2. 使用下图也可以理解 enter image description here

    示例工作流程 Sample WorkFlow

      

    所以,从上面的图片中很容易理解,每当android   应用程序首先由用户安装,然后自行注册   到GCM服务器,并获得唯一的GCM ID,然后它是我们的主机服务器   保留这个新注册的注册ID的责任   android用户进入数据库,然后它将在每次服务器时使用   方应用程序愿意将消息发送给该特定的   android用户。

    那么,让我们考虑一个案例;假设某个服务器想要将某些数据发送给Android用户,该用户在首次安装时已经注册了它的GCM ID 1234567,并且它已经在服务器的数据库中注册了服务器应用程序将从数据库 获取它,并简单地以JSON格式向GCM服务器发出HTTP POST请求,该请求将具有注册用户的GCM ID以及要发送的数据, 以相同的方式GCM服务器拥有所有已注册的GCM / Android客户端的记录,它直接将该消息转发给预期的Android用户,用户手机中的Android应用程序将提升和通知警报,表示推送通知已到达。

    希望这回答了一个问题!

答案 1 :(得分:0)

GCM代表Google Cloud Messaging。 任何Android设备上的每个推送通知都只能由GCM发送。

发件人 - > GCM - > Android设备

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

GCM无法提供没有唯一设备ID的推送。

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