Android GCM不起作用

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

我在客户端运行应用程序,我得到了registration_id。 一些巨大的string,在这个格式下面是:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA

这certificate了客户端应用程序的工作。 现在的服务器(Java,谷歌示例):

 public static void main(String[] args) { Sender sender = new Sender("AIzaSXXXXXXXXXX_XXXXXXXXXXXXXXXrQOnoGZw"); Message message = new Message.Builder() .collapseKey("1") .timeToLive(3) .delayWhileIdle(true) .addData("message", "this text will be seen in notification bar!!") .build(); try { Result result = sender.send(message, "APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA", 3); System.out.println(result.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

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

我需要帮助来了解什么是错的?

Solutions Collecting From Web of "Android GCM不起作用"

根据GCM文件 :

当第三方服务器向GCM发送消息并收到消息ID时,并不意味着消息已经传送到设备。 相反,这意味着它被接受交付。 消息被接受后会发生什么取决于许多因素。

在最好的情况下,如果设备连接到GCM,屏幕打开,并且没有节stream限制(请参阅节stream),则会立即传送消息。

请检阅他们的评论

http://developer.android.com/guide/google/gcm/gcm.html

注意:如果您的组织具有防火墙来限制stream量进出互联网,则需要将其configuration为允许与GCM连接。 要打开的端口是:5228,5229和5230.GCM通常只使用5228,但有时使用5229和5230.GCM不提供特定的IP。 它经常更改IP。

您可以按照此链接了解GCM。以下链接工作为我: http : //android.amolgupta.in/2012/07/google-cloud-messaging-gcm-tutorial.html

如果您正在使用它,请删除您的Internet防火墙,然后重试

请通过这个

如果您在GCM中遇到延迟通知或消息问题,请尝试此解决scheme。

我知道这是不正确的解决scheme,但它的工作安装这个应用程序它真的为我工作在这里