【问题标题】:GoogleCloudMessaging (GCM) Android clientGoogleCloudMessaging (GCM) Android 客户端
【发布时间】:2013-08-02 09:24:14
【问题描述】:

我正在尝试使 GCM 与我的 Android 应用程序一起工作。我有一些问题。

  1. 步骤 3:编写您的应用程序部分的 this article 中,我看不到任何服务。我如何在没有服务的情况下启动我的BroadcastReceiver?我应该开始吗?此部分没有任何服务。
  2. 编写服务器代码部分,代码中有两个字符串:

    用户名 = ''

    密码 = ''

    我应该为它们使用什么值?

【问题讨论】:

  • 创建一个与你的应用程序包同名的包,然后在那里创建你的服务,不要忘记在清单中注册你的广播,你可以看到这个stackoverflow.com/questions/14017176/…
  • GCMBaseIntentService 现在已弃用。

标签: android push-notification google-cloud-messaging


【解决方案1】:
  1. 不需要服务。当 GCM 消息到达时,Android 会启动广播接收器。在旧实现中,广播接收器调用了一个意图服务,但不再需要它。

  2. 用户是<your Google API project Id>@gcm.googleapis.com。密码是 API 密钥。但是,您提到的代码示例适用于新的基于 XMPP 的 API。使用基于 HTTP 的 API 更简单,它只需要请求标头中的 API 密钥。您提到的部分中的代码有一个指向 HTTP 示例的链接。

在 HTTP API 中,您向https://android.googleapis.com 发布一个如下所示的 HTTP 请求:

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

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

【讨论】:

  • 一些默认结局怎么样?什么时候可以找到?
  • @Tooto 抱歉,我从移动设备上回答了这个问题,因此很难搜索到确切的用户 ID。我编辑了答案。不过,不建议使用该代码示例。您只需要 Cloud Connection Server 的示例,它允许您的应用程序将消息发送回您的服务器(并且需要填写需要 Google 批准的特殊注册表单)。如果你只需要从你的服务器向你的应用推送消息,那么 HTTP 解决方案就简单多了。
【解决方案2】:

@Tooto : 如果你仔细看这篇文章,你会在 Manifest.xml 中找到服务类的入口。

 <service android:name=".MyIntentService" />

有关如何在您的 Android 应用中设置 GCM 的更多详细信息,您可以参考此链接:http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多