应用程序没有收到我的C2DM消息?

时间:2011-07-29 10:54:49

标签: java php android android-c2dm

这是我的C2DMReceiver:

public class C2DMReceiver extends C2DMBaseReceiver {
public C2DMReceiver() {
    // Email address currently not used by the C2DM Messaging framework
    super("dummy@gmail.com");
}

@Override
public void onRegistered(Context context, String registrationId)
        throws java.io.IOException {
    // The registrationId should be send to your applicatioin server.
    // We just log it to the LogCat view
    // We will copy it from there
    Log.e("C2DM", "Registration ID arrived: Fantastic!!!");
    Log.e("C2DM", registrationId);
};

@Override
protected void onMessage(Context context, Intent intent) {
    Log.e("C2DM", "Message: Fantastic!!!");
    // Extract the payload from the message
    Bundle extras = intent.getExtras();
    if (extras != null) {
        System.out.println(extras.get("payload"));
        // Now do something smart based on the information
    }
}

@Override
public void onError(Context context, String errorId) {
    Log.e("C2DM", "Error!");
}

}

它应该做的是显示“消息:太棒了!!!”在LogCat中,它无处可见。我究竟做错了什么?我的Web应用程序中有注册ID(用PHP编写),但没有运气。当我执行请求时,我得到了回复:

id=0:1311936686518981%48da2b9fb207fa19

使用指南:http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

1 个答案:

答案 0 :(得分:1)

使用C2DM时需要处理很多事情。我认为你的代码看起来还不错(即使我还没有测试它)。你的AndroidManifest.xml怎么样?我花了将近两天的时间才意识到我的AndroidManifest.xml包含一些错误,所以我无法让它发挥作用。

彻底阅读此documentation,我建议您安装(并从源代码中学习)ChromeToPhone应用,以便您了解C2DM的关键。

不要忘记C2DM仅适用于Froyo(2.2)及以上版本。