0

我正在尝试获取并推送通知(通知设备连接到数据源,因为它已更改/更新)

我阅读了很多关于它的教程,并试图在我的案例中应用它来帮助我,但实际上我在理解 GCM 如何工作时遇到了一些问题

我已在https://code.google.com/apis/console注册并获取SENDER IDAPIKEY

现在我有一些问题:

  1. 您是在每次我们启动应用程序时将设备注册到服务还是仅第一次?

  2. 我们将 GCM 用于(仅通知设备发生某事)还是(通知并获取有关什么是变化的信息)?

  3. 为什么这个操作需要(客户端和服务器)我的意思是(客户端)没关系因为他会收到推送通知,但是(服务器在这里意味着什么):(,因为我认为这里的服务器将是谷歌它自己通知设备

  4. 在这种情况下,当我们使用APIKEY

想法是:

我的网站上有 SQL Server 数据库,并且有两个用户需要的小型 android 应用程序(处理它),当任何用户向数据库添加一条记录时通知另一个用户

提前致谢 ,,

问候 :)


4

1 回答 1

1

1) 仅在需要时才向 GCM 注册。例如当你打电话时

GCMRegistrar.getRegistrationId(appContext);

它返回一个空白字符串。这通常会在您第一次启动应用程序时发生。

2) 这取决于您要尝试的数据是什么以及它是否适合 4K 有效负载限制。查看Send-to-Sync vs. Messages with Payload Google 帮助主题。

3) 您的服务器是将消息发送到 GCM 服务器的服务器。然后 GCM 服务器将消息向下发送到应用程序。看看我为我帮助创建的服务写的这篇博客文章:http: //blog.andromo.com/2012/how-does-airbop-push-messaging-work/它应该有助于解释它是如何工作的。在说明中,您可以用您自己的服务器替换我们的服务器。

4) 您将 API 密钥作为消息的一部分发送到 GCM 服务器,详情如下:http: //developer.android.com/google/gcm/gcm.html#request

所以在以下请求中:

Content-Type:application/json
Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA

{
  "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
  "data" : {
    ...
  },
}

授权:key=YOUR_API_KEY

于 2012-12-12T21:52:31.983 回答