gpt4 book ai didi

android - Android GCM 是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:57 28 4
gpt4 key购买 nike

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

谁能告诉我这是怎么做到的?

最佳答案

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

From your question it looks like you willing to know about data workflow & Client Server architecture that exists in applications which are using the GCM service.

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

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

The push notification can be broadcasted either to the mass audience or a select set of users. Mass audience is targeted when the notification has to be sent about a marketing campaign. A subset of users are targeted when a personalized information has to be sent.

Simplified Application Specific Work-flow

以下步骤解释了推送通知如何在 Android 设备上工作:

  1. 第一个 android 设备将发件人 ID、应用程序 ID 发送到 GCM 服务器注册。
    1. 注册成功后,GCM 服务器向 Android 设备颁发注册 ID。
    2. 收到注册id后,设备会将注册id发送到我们的服务器。
    3. 我们的服务器会将注册 ID 存储在数据库中以供进一步使用。
    4. 每当需要推送通知时,我们的服务器都会向 GCM 服务器发送一条消息以及设备注册 ID(即较早地存储在数据库中)。
    5. GCM 服务器将使用设备注册 ID 将该消息传送到相关移动设备。

这也可以通过下图来理解 enter image description here

示例工作流程: Sample WorkFlow

So, from above images it easy to understand that whenever the android application is first installed by the user, then it registers itself to GCM server, and obtains unique GCM ID, then it's our Host servers responsibility to keep this newly registered Registration ID of the android user into Database, and then it will be used whenever server side application willing to send the message to that particular android user.

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

希望这能回答一个问题!

关于android - Android GCM 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38812375/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com