【问题标题】:Android push notification without firebase没有 Firebase 的 Android 推送通知
【发布时间】:2017-05-21 13:22:10
【问题描述】:

我想向所选用户发送 android 推送通知而不使用 gcm 或 firebase。该应用程序已经在没有 firebase 的情况下构建。现在我也需要集成推送通知。

问题:

  • 没有火力基地怎么可能?

实际上我想要一个功能,当管理员更新特定用户的数据库表中的一个字段中的值时,该用户将收到有关更新的推送通知。怎么可能?

【问题讨论】:

  • 为什么要避免使用firebase?您无需在 firebase(使用 firebase 数据库)上重建后端。只需使用后端的 Firebase 通知部分。
  • 绝对有可能——您不必使用 Firebase 来传递推送通知。您可以推出自己的通知解决方案或考虑付费产品,例如不依赖 Firebase Cloud Messaging 的 Pushy (pushy.me)。全面披露 - 我是 Pushy 的创始人兼首席执行官。
  • 这是个好问题,因为我们不能依赖其他服务,意外终止帐户会停止推送通知。
  • @EladNava,我看了Pushy的文档,写的很好,但是为什么Pushy需要WRITE_EXTERNAL_STORAGE来存储token,私有文件夹就够了,不是吗?
  • 嗨@ENSATE,请注意 WRITE_EXTERNAL_STORAGE 权限是可选的,但建议将设备令牌持久保存在外部存储中,以便我们的 SDK 可以跟踪每个设备的唯一令牌,以便在重新安装您的应用程序时跟踪相同的设备。如果您的应用未请求此权限,我们的 SDK 将仅在 SharedPreferences 中保留设备令牌,卸载您的应用时会清除该权限。这可能会在重新安装您的应用时导致同一设备重复计费,因为在重新安装应用后我们无法识别之前的设备令牌。

标签: android


【解决方案1】:

方法是创建自定义服务https://developer.android.com/reference/android/app/Service.html,它通过套接字保持连接或定期轮询远程服务器。

但是,我建议 Firebase 服务在电池消耗方面更加先进和优化,尤其是在利用睡眠模式方面。制作具有快速响应和 CPU 消耗的服务并非易事。我认为自定义服务开发将导致网络例程库的本地 (C++) 编码。

另外,考虑到 Firebase 提供自己的身份验证服务,能够将您的匿名用户无缝转换为注册用户。 Firebase 服务有很多优点。缺点是:您的用户必须安装 Google Play 服务,如果您的应用会增长 - 您需要向 Firebase 付费。

看这里Android push notification without Google service

【讨论】:

  • XMPP 非常适合此目的。看到这个:xmpp.org/extensions/xep-0357.html
  • @ImamBux ,我想 Firebase 完全使用 XMPP))
  • 这是个坏主意。如今,操作系统会很快杀死您的服务。一些中国品牌甚至会扼杀前台服务。
  • @atlascoder Google Play 服务本身,如今,是主要的电池消耗者。
  • 嘿,@elad-nava,你为什么要在我的回答中添加广告?我不知道Pushy是什么!你为什么不自己写答案?
【解决方案2】:

可以使用 VAPID 身份验证。

Google for VAPID,您会发现一条非常曲折的道路,可能会导致您正在寻找的答案。

【讨论】:

  • 有趣的名字。听起来像是德古拉伯爵在说“快速”。
  • 是的.. 或者 elmer fudd :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多