【发布时间】:2013-03-06 13:23:35
【问题描述】:
我正在关注 Android GCM 演示教程 (http://developer.android.com/google/gcm/demo.html),我正在尝试让该应用程序在我的 Android 手机上运行,但是每当我在手机上运行该应用程序时,我都会收到以下消息: 尝试(尝试 1/5)在演示服务器上注册设备
然后在 5 次尝试失败后,我收到错误消息: 尝试 5 次后无法在演示服务器上注册设备
在尝试运行应用程序之前,我正在运行 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 网络,所以我'我不确定为什么这不起作用。
请帮忙:)。
附:如果有人对如何让 GCM-Demo-Server 在我的外部 IP 地址上运行有任何建议,那就太好了!目前,我能为我的机器找到的唯一外部 IP 地址是无线调制解调器/路由器的 IP,它只允许我访问调制解调器/路由器选项(即使我让 GCM-Demo-Server 在该外部IP 地址)。
【问题讨论】:
-
我猜你正在使用 Tomcat 作为你的网络服务器,所以如果你从手机的浏览器中输入 192.168.1.100:8080,你会看到 Tomcat 的欢迎页面吗?
-
要使用外部 IP 地址,您需要将路由器设置为从端口 xxxx 到端口 8080 的“端口转发”在您的演示服务器上。您将以 your_address_or_hostname:xxxx 身份访问服务器。
-
感谢 Nick 的回复,我实际上是使用在标准 Windows8 笔记本电脑上运行的 Java AppEngine 作为我的“Webserver”,仅用于开发和测试目的。是否可以在非服务器机器上运行 Tomcat?另外,感谢您提供有关路由器的信息,我回家后一定会尝试使用路由器设置。
-
刚刚想到,我还没有用GCM权限设置调整Android清单文件,这会导致手机无法成功联系GCM服务器吗?我正在使用 GCM-Demo 提供的项目,所以我假设正确的设置已经在清单文件中,但我必须检查一下。
-
使用内部 IP 地址应该可以正常工作,我一直这样做。修复 GCM 权限,看看是否有帮助。另外,有趣的是,我已经为您创建了一个包含测试服务器的 maven 插件:code.google.com/p/gcmutils/wiki/MavenPlugin
标签: java android google-cloud-messaging