2012-08-14 49 views
1

我能够使用的代码无法使用谷歌云通讯/ GCM从服务器发布消息客户端

GCMRegistrar.register获得我的客户端应用程序激活码(这一点,“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(); 
     } 

    } 
} 

登录时的结果值我正在 “[错误码= MismatchSenderId]

我不能进一步进行。如果有人能为我提供一个解决方案,这将是很大的帮助。

回答

4

API密钥和senderID应该属于同一个帐户。还应该使用使用给定senderID生成的相同注册ID。检查你的钥匙。

它在GCM page解释如下:

注册ID被绑定到一组特定的发件人。当一个 应用程序注册GCM使用情况时,它必须指定哪些发件人允许发送消息 。确保在使用 尝试向设备发送消息时使用其中的一种。如果您切换到其他 发件人,现有的注册ID将不起作用。错误 代码为MismatchSenderId时发生。