0

我一直在为我即将到来的项目开发 GCM 推送通知,并且我一直面临着一些关于它的实现的困惑。我遵循了以下链接:

  1. http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/
  2. http://developer.android.com/google/gcm/client.html

我最终得到的实现在模拟器上工作得很好(不是在所有模拟器上)。这是我的注册实现的链接。

  1. 它适用于在平台 4.2.2 上运行的模拟器
  2. 它不适用于在平台 2.3.3 上运行的模拟器

到目前为止,我的经验告诉我,在客户端,必须确保以下事项才能正确启用 GCM:

  1. 已安装 Google Play 服务
  2. 设备已与 Google 帐户同步。

我对吗?

所以我有以下问题要问:

  1. 在实施 GCM 时我应该担心哪些客户端依赖项?我应该在我的代码中检查什么?
  2. 当我取消注释上述代码中从 110 到 114 的行以检查播放服务时,我收到以下错误日志http://pastebin.com/C2BJkiyt。但它仍然允许我注册。怎么了?
  3. 当我在具有 Android 2.3.6 的真实设备上运行工作代码(在模拟器上工作)时,它不起作用。它也不适用于具有 ICS 的设备。

谢谢你的时间。

4

1 回答 1

0

您正在使用已弃用的库方法注册到 GCM GCMRegistrar.register。这仍然可以工作,但需要在 4.0.4 之前的 Android 设备上使用已登录的 Google 帐户。

Google 鼓励您停止使用已弃用的库,而是使用 GoogleCloudMessaging 类的 register 方法,即使在较旧的 Android 版本中也不需要 Google 帐户。有关示例,请参阅他们的 GCM 演示。

仅当您切换到新的注册方法时,检查播放服务的代码才有意义。

至于为什么不推荐使用的注册方法在某些设备上对您不起作用,您必须包含 logcat 以获得帮助。

于 2013-10-24T17:06:14.310 回答