0

尝试实现 google C2DM 服务。

registrationIntent.putExtra("app", PendingIntent.getBroadcast(context,0,new Intent(), 0));
registrationIntent.putExtra("sender","example@gmail.com");
context.startService(registrationIntent);

几乎每个教程都包含这行代码。这是我必须编码的服务吗?或者Android是否知道如何处理这种类型的意图。我从具有默认构造函数的辅助类调用此方法。我将当前的 Context 传递给上面的这个方法来创建注册 Intent。有人对它的工作原理或我的程序将去哪里有一些见解吗?

4

2 回答 2

0

你遗漏了最有趣的一段代码

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");

这是我必须编码的服务吗?或者Android是否知道如何处理这种类型的意图。

请注意,意图位于com.google.android.c2dm域中。设备上的 Android C2DM 实现知道如何处理此意图,您将启动自己的服务来处理它。

于 2012-06-14T18:12:02.970 回答
0

不,您不必编写服务。您需要向 Google 的服务发送意图。您省略了创建意图的第一行,其中包含服务名称。通常是这样的:

    Intent 注册Intent = new Intent("com.google.android.c2dm.intent.REGISTER");

该行com.google.android.c2dm.intent.REGISTER标识了 Google 的服务。

现在,您仍然需要编写将接收注册结果(ID 或错误)的广播接收器。还有一个接收器来接收实际的 C2DM 消息。

于 2012-06-14T18:15:42.490 回答