【问题标题】:Dependencies for GCM Push NotificationGCM 推送通知的依赖项
【发布时间】:2013-10-24 05:11:40
【问题描述】:

我一直在为即将到来的项目开发 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

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

  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 的设备。

感谢您的时间。

【问题讨论】:

  • 对于您的错误,您正在尝试在不关闭警报对话框的情况下开始活动。这是内存窗口泄漏的错误。
  • 在 2.3.3 平台上运行的模拟器已与 google 帐户同步。
  • 您需要查看客户端是否注册了Google play账号?移动端是否安装了谷歌播放服务?
  • @AnAndroid 我编辑了我的问题,我不确定客户端是否需要安装游戏帐户和服务。关于您之前的评论,我该如何防止开始活动?
  • @URAndroid 对不起,我没听懂你说的。模拟器未与谷歌帐户同步。即使我与谷歌帐户同步,它仍然无法正常工作,当我点击注册按钮时,它会将我导航到 settings->account 中的帐户设置选项。

标签: android android-emulator google-cloud-messaging


【解决方案1】:

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

Google 鼓励您停止使用已弃用的库,而改用 GoogleCloudMessaging 类的 register 方法,即使在较旧的 Android 版本中也不需要 Google 帐户。示例见their GCM Demo

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

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

【讨论】:

  • 感谢您的意见。我正在尝试您提供的演示。所以在这种新方法中,客户端设备不必同步 Google 帐户,对吗?我应该研究的任何其他问题/依赖关系?
  • @Pro.metal 好吧,如果您还没有这样做,您必须设置 Google Play Services SDK。你可以阅读它here。而且您不必同步 Google 帐户是正确的。
  • 我已经实现了 Google Play 服务库问题,但遇到了一些麻烦。我想我已经解决了这个问题,但我仍然遇到错误。这是我的log report。这是我的code
  • 显然我在使用新实现时遇到了问题。所以我坚持使用旧的实现。因此,如果此实施必须同步 google 帐户,我应该什么时候检查呢?当用户想要在我的 GCM 中注册时,我应该如何检查此问题?
猜你喜欢
  • 2015-03-08
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
相关资源
最近更新 更多