【问题标题】:Is it possible to use GCM without Google account AND Google Play Services on the device?是否可以在设备上使用没有 Google 帐户和 Google Play 服务的 GCM?
【发布时间】:2014-02-15 16:35:29
【问题描述】:

我正在为具有
的设备编写系统应用程序 未安装 Google Play 服务或 Google Play 商店。

我想实现推送通知。

该设备运行的是 Android 4.2.2,官方 Google GCM 文档说:

运行 Android 4.0.4 或更高版本的设备不需要 Google 帐户。

但这些文档与使用 Google Play Services 的新版 GCM 相关(我不适合)

所以我尝试使用旧的、已弃用的 GCM 帮助程序库。
我在设备上安装了GoogleServicesFramework4.0.x(我可以安装 GSF。但不能安装 Google Play 服务)

我现在收到 AUTHENTICATION_FAILED 错误,registrationId 是 null。
我猜这是因为设备上没有设置 Google 帐户。
已弃用的 GCM 库是否需要 Google 帐户?
(我的 SENDER_ID 是正确的,我已经检查过了)


基本上,我的问题是:
没有 Google 帐户是否可以使 GCM 工作,
使用旧的、已弃用的 GCM 帮助程序库?

注意:我不能在设备上创建 Google 帐户(这是要求)

如果这不可能,那么请提出另一种实现推送通知的方法。
(请注意,大多数推送通知提供商实际上“在后台”使用 GCM(例如,Urban Airpush),所以不要推荐这些)

如果可能,我希望避免轮询服务器以获取通知(“拉取通知”),
谢谢。

【问题讨论】:

  • 不幸的是,这是不可能的。这是 GCM/FCM 的核心要求。考虑使用不使用 Google Play 服务的 GCM 替代方案 Pushy (pushy.me),这是一个独立、可靠的推送通知网关。全面披露 - 我是 Pushy 的创始人兼首席执行官。

标签: android push-notification google-cloud-messaging google-play-services google-account


【解决方案1】:

就在您发布的报价之前(关于不需要 Google 帐户),您有这个:

它需要运行 Android 2.2 或更高版本的设备还安装了 Google Play 商店应用程序,或者运行 Android 2.2 和 Google API 的模拟器。但是,您不仅限于通过 Google Play 商店部署您的 Android 应用程序。

因此,Google Play 商店似乎是 GCM 工作的必要条件。

Pushy 是 GCM 的替代品,不需要 Google 帐户或 Google Play 服务。

【讨论】:

  • 是的,但我不确定这些文档是否适用于旧库。我想看看更多人对此的看法...
  • @BojanRadivojevicBomber 适用于旧库。这个要求早在旧库被弃用之前就已经存在了。我一直在关注 GCM 文档,所以我知道。
  • 我最终使用了 parse.com,它实现了自己的推送通知服务,而不是在 GCM 上实现
  • 即使它在原则上有效,但手机上的 Google Play 服务迟早会过时。而且我不确定您是否可以使用 Google 帐户更新未设置 Google Play 的用户。有人知道怎么可能吗?
【解决方案2】:

作为 GCM 的替代方案,当设备上没有 Google 帐户和 Google Play 服务时,您可以使用 MQTT 作为开源和流行的推送通知替代方案。 Facebook 在 Facebook Messenger 中使用了 MQTT 的各个方面。

MQTT 实施需要:

1) 在服务器端运行的 MQTT 代理。这可能类似于开源的 mosquitto 代理。

2) 包含在您的 Android 应用程序中的 MQTT 客户端库,使您的应用程序能够连接、订阅和发布消息。 http://mqtt.org/software

列出了许多 Java 选项

3) 提出一种唯一标识用户或设备的方法,然后将其用作主题,以便您可以将消息单独发布到一个设备。 Dale Lane 写了一个很好的指南 (http://dalelane.co.uk/blog/?p=1599),还有一组很好的关于 MQTT 的资源 (https://github.com/mqtt/mqtt.github.io/wiki)

下面的博文 Github 示例也提供了一个在 Android 上实现 MQTT 推送通知的实际示例:

http://tokudu.com/post/50024574938/how-to-implement-push-notifications-for-android

https://github.com/tokudu/AndroidPushNotificationsDemo

【讨论】:

  • 我同意 MQTT 是一个可行的替代方案。我自己使用 MQTT 编写了一个应用程序,并首先遵循了 Dale Lanes 的示例。现在有了 Eclipse Paho Android,我会推荐它,它更新且更成熟。 eclipse.org/paho/clients/android
猜你喜欢
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
  • 2016-05-20
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多