Java Android设备上的GCM演示
我正在学习Android GCM演示教程(),并试图让该应用程序在我的Android手机上运行,但每当我在手机上运行该应用程序时,我都会收到以下消息: 正在尝试(尝试1/5)在演示服务器上注册设备 5次尝试失败后,我收到错误消息: 尝试5次后,无法在演示服务器上注册设备 在尝试运行应用程序之前,我正在运行GCM服务器,并且GCM服务器正在本地笔记本电脑上运行。以下服务器值已在GCM Demo Client项目的“app”文件夹中的我的“CommonUtilities”文件中设置Java Android设备上的GCM演示,java,android,google-cloud-messaging,Java,Android,Google Cloud Messaging,我正在学习Android GCM演示教程(),并试图让该应用程序在我的Android手机上运行,但每当我在手机上运行该应用程序时,我都会收到以下消息: 正在尝试(尝试1/5)在演示服务器上注册设备 5次尝试失败后,我收到错误消息: 尝试5次后,无法在演示服务器上注册设备 在尝试运行应用程序之前,我正在运行GCM服务器,并且GCM服务器正在本地笔记本电脑上运行。以下服务器值已在GCM Demo Client项目的“app”文件夹中的我的“CommonUtilities”文件中设置 SERVER_U
SERVER_URL = "http://192.168.1.100:8080/gcm-demo";
SENDER_ID = "245619476079";
我知道这是一个内部IP地址,但是我在尝试使用外部IP地址运行服务器时遇到了其他问题,并且我已经将我的Android设备连接到了同一个WI-FI网络,因此我不确定这为什么不起作用
请帮忙:)
另外,如果有人对如何在我的外部IP地址上运行GCM演示服务器有任何建议,那就太好了!目前,我能为我的机器找到的唯一外部IP地址是无线调制解调器/路由器的IP,它只允许我访问调制解调器/路由器选项(即使我让GCM演示服务器在该外部IP地址上运行)。最终解决了这个问题。不确定原因,但在从URL末尾删除“/gcm demo”后,我的设备能够成功连接到gcm服务器并接收消息。因此,“CommonUtilities.java”文件中设置的最后一个“SERVER_URL”显示为:
SERVER_URL = "http://192.168.1.100:8080";
还感谢Nick提供的提示,Nick成功地使其通过端口转发在我的外部IP地址上工作,使最终的服务器URL看起来像:
SERVER_URL = "http://<external_ip>:8080";
SERVER\u URL=“http://:8080”;
谢谢大家的帮助:)终于解决了这个问题。不确定原因,但在从URL末尾删除“/gcm demo”后,我的设备能够成功连接到gcm服务器并接收消息。因此,“CommonUtilities.java”文件中设置的最后一个“SERVER_URL”显示为:
SERVER_URL = "http://192.168.1.100:8080";
还感谢Nick提供的提示,Nick成功地使其通过端口转发在我的外部IP地址上工作,使最终的服务器URL看起来像:
SERVER_URL = "http://<external_ip>:8080";
SERVER\u URL=“http://:8080”;
谢谢你们的帮助,伙计们:)
使用此url,它将在第页注册:
http://192.168.1.10:8080/home
,
不是那一页
http://192.168.1.10:8080/gcm-演示
,
无法发送消息
使用此url,它将在第页注册:
http://192.168.1.10:8080/home
,
不是那一页
http://192.168.1.10:8080/gcm-演示
,
无法发送消息。请确保在php中启用了curl。它对我有用 例如,对于Ubuntu/Debian服务器,您需要运行以下命令:
sudo apt-get install php5-curl
然后,重新启动Apache服务器:
sudo /etc/init.d/apache2 restart
使用Windows尝试从wamp设置启用
有关启用curl的更多信息,请参阅确保在php中启用了curl。它对我有用 例如,对于Ubuntu/Debian服务器,您需要运行以下命令:
sudo apt-get install php5-curl
然后,重新启动Apache服务器:
sudo /etc/init.d/apache2 restart
使用Windows尝试从wamp设置启用
有关启用curl的更多信息,请参阅我猜您正在使用Tomcat作为Web服务器,因此如果您从手机浏览器中输入192.168.1.100:8080,是否会看到Tomcat欢迎页面?要使用外部ip地址,则需要将路由器设置为“端口转发”,从演示服务器上的端口xxxx到端口8080。您将以\u地址\u或\u主机名:xxxx访问服务器。感谢您的回复,Nick,我实际上是在使用标准Windows8笔记本电脑上运行的Java AppEngine作为“Web服务器”,仅用于开发和测试目的。可以在非服务器机器上运行Tomcat吗?另外,感谢你提供的关于路由器的信息,我回家后一定会尝试一下路由器设置。我只是想了想,我还没有用GCM权限设置调整Android清单文件,这会阻止手机成功联系GCM服务器吗?我正在使用GCM演示提供的项目,因此我假设清单文件中已经存在正确的设置,但我必须检查。使用内部ip地址应该可以正常工作,我一直都在这样做。修复GCM权限,看看这是否有帮助。另外,可能有意思的是,我已经为您创建了一个包含测试服务器的maven插件:我猜您正在使用Tomcat作为Web服务器,因此如果您从手机浏览器中输入192.168.1.100:8080,您会看到Tomcat欢迎页面吗?要使用外部ip地址,然后,您需要在演示服务器上将路由器设置为“端口转发”,从端口xxxx到端口8080。您将以\u地址\u或\u主机名:xxxx访问服务器。感谢您的回复,Nick,我实际上是在使用标准Windows8笔记本电脑上运行的Java AppEngine作为“Web服务器”,仅用于开发和测试目的。可以在非服务器机器上运行Tomcat吗?另外,感谢你提供的关于路由器的信息,我回家后一定会尝试一下路由器设置。我只是想了想,我还没有用GCM权限设置调整Android清单文件,这会阻止手机成功联系GCM服务器吗?我正在使用GCM演示提供的项目,因此我假设清单文件中已经存在正确的设置,但我必须检查。使用内部ip地址应该可以正常工作,我一直都在这样做。修复GCM权限,看看这是否有帮助。另外,值得注意的是,我创建了一个maven插件,其中包含一个测试服务器: