问题标签 [google-cloud-messaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2567 浏览

android - 从我的通知接收器启动另一个活动

好的,所以,我会先声明我正在使用 Titanium,所以我认为这会让你的嘴巴尝起来不好。所以,我很抱歉我缺乏关于 Android 方面的知识。

所以,我设置了一个东西来接收 GCM 通知。我可以将它们正确发送到我的应用程序,并且代码运行并在单击时尝试启动我的应用程序。但是,它只是在 logcat 中给了我这个:

我让 C2DM 从第三方接收东西,我试图修改它以做我需要的,但我显然做的事情不太正确。

这是 onMessage:

这是我的清单(我认为)

由于 Titanium 处理事情的方式,在不同的地方还有另一个清单部分:

如果应用程序已经打开,它会运行一些 Titanium 代码,我想我可以弄清楚,但如果应用程序没有打开,它会在 onMessage 中遇到一些我不太明白的东西。

任何帮助,将不胜感激。谢谢。

0 投票
2 回答
3750 浏览

android - 应用程序在接收 gcm 消息广播时没有被唤醒

我最近使用谷歌的帮助类(GCMBroadcastReceiver、GCMBaseIntentService)将 GCM 消息添加到我的应用程序中。它在应用程序运行时运行良好,无论是在前台还是不在前台。但是,当它不运行时,没有任何效果。

作为测试,我扩展了 GCMBroadcastReceiver 并将日志语句添加到 getGCMIntentServiceClassName() 和 peekService()。当应用程序正在运行并且消息到达时,我看到前者被调用。然后操作系统实例化我的服务类,最终导致 onMessage() 被调用。

当应用程序未运行时,永远不会调用 getGCMIntentServiceClassName()。

我的清单几乎是来自 Google 的 GCM 示例的样板代码。

是否需要设置额外的权限或标志才能让操作系统在我的应用程序未运行并且消息到达时唤醒我的应用程序并带有正确的意图类别?我的接收器定义为:

请记住:这在应用程序在后台运行时有效。

0 投票
1 回答
938 浏览

java - 将应用程序部署到 GAE 时,GCM 的 api.key 文件应该位于 WAR 文件的什么位置?

我正在尝试使用 Google Apps 上的 Tomcat 6 获取以前在我的机器上本地运行的 .war 文件。我在 Eclipse 中创建了项目,文件结构与Google 的 GCM Example有点不同。我想我终于把所有东西都整理好了,除了最后一部分。我不知道“api.key”属于哪个目录。我在 Google Apps 服务器上的日志中的堆栈跟踪如下:

您可以在此链接中查看 Google 所说的目录应该是什么样子。当我关注 Google 的 GCM Demo(顶部的第一个链接)时,它会将“api.key”文件放在 WEB-INF/classes 目录下。我在新的 Google App Engine 结构中尝试了这个,我得到了上面的错误。我觉得我真的很接近,因为很明显我的 servlet 正在尝试运行,但它找不到这个文件。有谁知道把它放在哪里以便它可以找到它并且我可以让它工作?

0 投票
4 回答
12457 浏览

android - 安卓 GCM 不工作

我使用 goole 提供的示例,并构建了一个客户端应用程序来获取通知和一个服务器端,这两个应用程序(代码)都是 google 提供的。

我在客户端运行应用程序并获得了registration_id。一些巨大的字符串,格式如下:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA.

这向我证明了客户端应用程序有效。现在服务器(java,google示例):

这是服务器。当我运行服务器时,我得到如下结果: [ messageId=0:1341907115903155%921c249a00000031 ] 但客户端上没有消息,我不明白为什么。我从服务器得到的响应是什么意思?是成功响应吗?

我需要帮助以了解问题所在?

0 投票
4 回答
8335 浏览

android - 尝试设置 GCM 演示应用程序 - 设备注册不起作用

所以我一直在按照 Google 的教程在 Android 模拟器上设置 GCM 演示应用程序(这里的那个:http: //developer.android.com/guide/google/gcm/demo.html)。我让服务器端正常工作 - 我有一个显示“未注册设备!”的 tomcat 服务器 在 GCM 演示页面上。我已经在带有目标 Google API 的 Android 模拟器上安装了客户端应用程序(试图让 GCM 在一个针对 4.1 的模拟器上工作,每次运行应用程序时都会吐出“不幸的是,GCM Demo 已停止”) - 应用程序运行成功,但它无法连接到服务器来注册设备(它经历了所有 5 次尝试)。我确实将 SERVER_URL、SENDER_ID 和 api.key 编辑为正确的值(我 已遵循本教程的每一步)-我在这里缺少什么?模拟器上的浏览器似乎也可以正常工作。

编辑:固定网址演示 - nickl

0 投票
2 回答
3635 浏览

android - 为什么 gcm 文档建议在应用更新时使注册无效?

来自 GCM文档

当应用程序更新时,它应该使其现有的注册 ID 无效,因为不能保证它可以与新版本一起使用。因为更新应用程序时没有调用生命周期方法,所以实现此验证的最佳方法是在存储注册 ID 时存储当前应用程序版本。然后在启动应用程序时,将存储的值与当前应用程序版本进行比较。如果它们不匹配,则使存储的数据无效并重新开始注册过程。

当文档声明“不能保证与新版本一起使用”时,这是 GCM 的限制,还是他们在推测我的应用程序的行为在不同版本之间的潜在变化?

从应用程序方面,我或多或少可以保证后续版本将在 GCM 和我编写的任何特定于应用程序的消息格式方面正常运行。我还需要重新注册吗?

如果是这样,我应该使用哪个来检测“新版本”:版本代码或版本名称?我的理解是这些是“自由形式”,应用程序开发人员将它们设置为他选择的任何值。那么,如果我将应用更新放入商店但不更改 versionName 或 versionCode 怎么办?我需要重新注册 GCM 吗?

似乎 GCM真正想要的是应用程序在每次首次启动新安装时重新注册(并且每次连续启动直到注册完成),无论 versionName 和 versionCode 中的值如何。这是一个准确的说法吗?

0 投票
2 回答
15789 浏览

c# - 调用 Google GCM 时未授权

我尝试使用 Google GCM 发送推送通知。但是得到一个 WebException ,表明远程服务器未经授权返回 401。我不知道为什么它不起作用。

有谁知道为什么它不起作用?

这是我的代码:

在此处输入图像描述

0 投票
9 回答
32912 浏览

android - Android GCM 基本实现

更新:我修复了下面代码中的问题,因此这是一个很好的基本工作示例,说明如何使用GCM


所以,我正在尝试在GCM我的应用程序中实现 Android。以下是我添加到清单中的相关部分:

...

我已将以下代码添加到我的主要活动的 onCreate 中:

我还创建了GCMIntenetService这样的类:

当我运行它时,我在LogCat中得到了这个:

从我从其他帖子中收集到的信息中,我应该获得一个注册 ID,LogCat但我没有。也onRegistered()永远GCMIntentService不会被调用。那我做错了什么?

0 投票
1 回答
1770 浏览

android - 在 Windows 7 中创建战争文件

我正在尝试设置 GCM 演示应用程序。http://developer.android.com/guide/google/gcm/demo.html

我被困在试图创建一个战争文件:在一个 shell 窗口中,转到 gcm-demo-server 目录。

通过运行 ant war 生成服务器的 WAR 文件:

我使用的是 Windows 7,我该如何创建这个 war 文件?

0 投票
2 回答
503 浏览

android - GCM 生产准备好了吗?我们现在应该开始使用它吗?

GCM准备好生产了吗?

我只是想知道是否有人已经切换到它并且可以报告它的行为与宣传的一样。我从几天前在开发版本中转换,但我的C2DM仪表板仍然报告零数据使用情况,这让我感觉不太好。(这是在 Google API 控制台下,标题为 的图表)。我已经成功地使用.GCMGCMTraffic Reports for [your app name]GCM

看起来不错,但我很犹豫是否要向数十万用户释放这个。