1

我开发的 Android C2DM 推送应用程序在应用程序端代码中有我的发件人的引用(例如:“sender@gmail.com”)。案例 1:当我在 Android 设备上安装此应用程序时,该设备在帐户和同步设置中的 gmail id 为“personalid@gmail.com”。应用程序已成功注册到 C2DM,但它没有收到任何推送的消息。

案例 2:当我在 Android 设备的帐户和同步中使用相同的发件人 ID(“sender@gmail.com”)时。我收到我推送的所有消息。

为什么案例 1 失败而案例 2(发件人 ID 全部)成功?

4

2 回答 2

0

请确保您已从手机的内置 gtalk 应用程序中退出,如果您没有从 gtalk 应用程序中退出,那么它将在 gtalk 和您的个人应用程序之间产生歧义,以便从谷歌服务器推送消息,因此无法发送向任何应用程序发送消息并给出例外。

推送通知的详细信息,请查看https://developers.google.com/android/c2dm/

最好的 c2dm 教程,http: //www.vogella.com/articles/AndroidCloudToDeviceMessaging/article.html

于 2012-05-08T10:52:26.580 回答
0

这就是 C2DM 的工作方式。它以这种方式工作是有道理的,因为它需要 和 的电子邮件registration id地址authentication token

发送推送消息时,您的第三方服务器使用基于(可能)“sender@gmail.com”的注册 ID,以及基于同一电子邮件的身份验证令牌。Google 的服务器会查看您的设备并尝试查找该特定电子邮件地址帐户。您可以在设备上拥有多个帐户,但其中至少一个必须是用于注册设备的帐户。

如果这无关紧要,为什么谷歌会要求提供电子邮件?直接使用设备的唯一 ID 会容易得多。

于 2012-05-09T08:45:54.253 回答