无法使用Google云消息传递/ GCM将消息从服​​务器发布到客户端

时间:2012-08-14 05:50:01

标签: cloud messaging google-cloud-messaging

我可以使用代码

在我的客户端应用上获取注册码

GCMRegistrar.register(this,“805421596082”);

我收到了注册ID。

我正在使用以下JAVA代码发布消息。

import java.util.ArrayList; 

import com.google.android.gcm.server.Message; 
import com.google.android.gcm.server.MulticastResult; 
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.Sender; 

public class Notify { 

    public static void main(String args[]) { 

        try { 

            Sender sender = new Sender("AIzaSyAj0cooI3YxBzbug-6CcmJQdRXxGKphRbU"); // This is the server api key 

            Message message = new Message.Builder() 
            .collapseKey("1") 
            .timeToLive(3) 
            .delayWhileIdle(true) 
            .addData("message", 
            "this text will be seen in notification bar!!") 
            .build(); 

            Result result = sender 
            .send(message, 
            "APA91bEMi5lmYKxaJX4-80eUp1JsW50_jSbZoqUs16xswI9EuXK_Km3qyuGxvoqKBvg9_5009naFrF7VKBknOKEo946SWtH57cd_m5BbTxpgaaT_Iy-m9McyV6aqy6BjxAy0d57arqp2yq6mHZrgw7qx-o4ntv7T2Q",  // This is the registration id
            1); 


        } catch (Exception e) { 
            e.printStackTrace(); 
        } 

    } 
}

当我记录结果值时,我正在“ [errorCode = MismatchSenderId]

我无法继续下去。如果有人可以建议我解决这个问题,那将会很有帮助。

1 个答案:

答案 0 :(得分:4)

API密钥和senderID应属于同一帐户。此外,您应该使用使用给定senderID生成的相同registrationID。检查你的钥匙。

GCM page中解释如下:

  

注册ID与某组发件人绑定。当一个   应用程序寄存器用于GCM使用,它必须指定哪些发件人   允许发送消息。确保你正在使用其中之一   尝试向设备发送消息。如果你切换到另一个   发件人,现有的注册ID将无法正常工作。发生错误时发生   代码是MismatchSenderId。