Android设备上的GCM演示

时间:2013-03-06 13:23:35

标签: java android google-cloud-messaging

我正在关注Android GCM演示教程(http://developer.android.com/google/gcm/demo.html),我正在尝试让应用程序在我的Android手机上运行,​​但每当我在手机上运行该应用程序时,我都会收到以下消息: 尝试(尝试1/5)在演示服务器上注册设备

然后在5次尝试失败后,我收到错误消息: 5次尝试后无法在Demo Server上注册设备

我在尝试运行应用程序之前运行GCM服务器,并且GCM服务器正在我的本地笔记本电脑上运行。在GCM-Demo-Client项目的“app”文件夹中的“CommonUtilities”文件中设置了以下服务器值。

SERVER_URL = "http://192.168.1.100:8080/gcm-demo";
SENDER_ID = "245619476079";

我知道这是一个内部IP地址,但我遇到了其他问题,试图在我的外部IP地址上运行服务器,而且我的Android设备连接到同一个WI-FI网络,所以我'我不确定为什么这不起作用。

请帮助:)。

P.S。如果有人有任何建议如何让GCM-Demo-Server在我的外部IP地址上运行,这将是很棒的!目前,我能为我的机器找到的唯一外部IP地址是无线调制解调器/路由器的IP,它只允许我访问调制解调器/路由器选项(即使我在外部运行GCM-Demo-Server) IP地址)。

3 个答案:

答案 0 :(得分:1)

SERVER_URL = "http://192.168.1.10:8080";

使用此网址,它将在页面上注册: http://192.168.1.10:8080/home,  不是页面 http://192.168.1.10:8080/gcm-demo, 并且无法发送消息。

答案 1 :(得分:0)

最后成功解决了这个问题。不确定为什么但是从URL的末尾删除“/ gcm-demo”后,我的设备能够成功连接到GCM服务器并接收消息。因此,在“CommonUtilities.java”文件中设置的最终“SERVER_URL”显示为:

SERVER_URL = "http://192.168.1.100:8080";

还要感谢提示Nick,设法通过端口转发使其工作我的外部IP地址,使最终的SERVER_URL看起来像:

SERVER_URL = "http://<external_ip>:8080";

感谢您的帮助:)

答案 2 :(得分:0)

确保在php中启用 curl 。它对我有用。

例如,使用 Ubuntu / Debian 服务器,您需要运行此命令:

sudo apt-get install php5-curl

之后,重新启动Apache服务器:

sudo /etc/init.d/apache2 restart

Windows 尝试从wamp设置启用。

有关启用curl的更多信息,请参阅this