1

我能够使用代码在我的客户端应用程序上获取注册密钥

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]

我无法继续进行。如果有人可以为此建议我一个解决方案,那将是很大的帮助。

4

1 回答 1

4

API key 和 senderID 应该属于同一个帐户。您还应该使用使用给定的 senderID 生成的相同 registrationID。检查你的钥匙。

GCM页面中解释如下:

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

于 2012-08-14T06:12:11.840 回答