android - 如何在应用程序关闭时实时接收呼叫/消息
问题描述
我正在开发一个使用 SIP 作为信令协议的 VoIP 应用程序。我已经实现了消息传递和调用功能,它们在应用程序处于前台时工作。为了让应用程序在关闭时监听呼叫和消息接收,我创建了一个前台通知,以便应用程序始终处于前台。
问题是上述方法消耗大量功率,这是不可接受的。我还注意到,著名的 VoIP 应用程序(如 WhatsApp 和 Signal)没有使用前台通知,但无论应用程序是否关闭,它们都会设法通知我们来电/消息。我想知道如何实现相同的功能。有人可以指出我正确的方向吗?
解决方案
这种应用程序应该使用推送通知(参考:https ://firebase.google.com/docs/cloud-messaging ),它为整个系统使用一个单一的套接字连接:每个应用程序都应该注册自己以接收推送,然后当服务器触发(FCM 支持许多语言,带有示例/教程)调用事件,然后将一个特殊的“消息”发送到应用程序(提供有关 IP 的一些信息或您想要的任何信息),该应用程序获取这些信息并以正确的方式运行。
不幸的是,FCM 在每月数千次通知后需要付款。还有其他类似的在线服务,但这些服务需要收费,因为它们要同时处理许多连接的用户,并且需要硬件和带宽。
推荐阅读
- elasticsearch - 具有多个术语查询的 Elasticsearch 排名聚合
- typescript - 如何从 QuickPick 中删除“确定”按钮
- cmake - 构建 LLVM 时的 Cmake
- pandas - 数据框用前一行值填充下一行
- typescript - 元组对数组的类型推断
- excel - 如何创建一个包含多个工作表的 excel 文件,该文件使用 python 存储文本文件的内容
- python - python函数的可选参数字符串和数据框
- python - 如何使用 pip 卸载具有非法名称的软件包?
- c# - 检查应用程序是否正在运行?
- latex - Latex 多行多列表