Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android设备上的GCM演示_Java_Android_Google Cloud Messaging - Fatal编程技术网

Java Android设备上的GCM演示

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

我正在学习Android GCM演示教程(),并试图让该应用程序在我的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网络,因此我不确定这为什么不起作用

请帮忙:)


另外,如果有人对如何在我的外部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插件,其中包含一个测试服务器: