android GCM不起作用

Zel*_*Ady 8 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();
        }
}
Run Code Online (Sandbox Code Playgroud)

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

我需要帮助才能理解什么是错的?

Dmi*_*try 6

请查看他们的评论

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

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


bhu*_*vin 4

根据GCM 文档

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

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