android GCM不起作用

时间:2012-07-10 08:10:04

标签: android google-cloud-messaging

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

我在客户端运行应用程序,然后获得registration_id。一些巨大的字符串,格式如下:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA

这证明了客户端应用程序的工作原理。现在服务器(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] 但客户端没有消息,我不明白为什么。我从服务器得到的响应是什么意思?这是成功的回应吗?

我需要帮助才能理解出了什么问题?

6 个答案:

答案 0 :(得分:6)

请查看他们的评论

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

注意:如果您的组织有防火墙限制进出Internet的流量,则您需要对其进行配置以允许与GCM建立连接。要打开的端口是:5228,5229和5230. GCM通常仅使用5228,但有时使用5229和5230.GCM不提供特定的IP。它经常更改IP。

答案 1 :(得分:4)

根据GCM Documentation

  

当第三方服务器向GCM发布消息并收回消息ID时,并不意味着消息已经传递给设备。相反,它意味着它被接受交付。邮件被接受后会发生什么情况取决于很多因素。

     

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

答案 2 :(得分:3)

您可以点击此链接了解GCM。以下链接对我有用: http://android.amolgupta.in/2012/07/google-cloud-messaging-gcm-tutorial.html

答案 3 :(得分:2)

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

Please go through this

答案 4 :(得分:1)

答案 5 :(得分:0)

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

我知道这不是正确的解决方案,但是工作安装此应用程序它真的对我有用HERE