首页 > 解决方案 > 如何在应用程序关闭时实时接收呼叫/消息

问题描述

我正在开发一个使用 SIP 作为信令协议的 VoIP 应用程序。我已经实现了消息传递和调用功能,它们在应用程序处于前台时工作。为了让应用程序在关闭时监听呼叫和消息接收,我创建了一个前台通知,以便应用程序始终处于前台。

问题是上述方法消耗大量功率,这是不可接受的。我还注意到,著名的 VoIP 应用程序(如 WhatsApp 和 Signal)没有使用前台通知,但无论应用程序是否关闭,它们都会设法通知我们来电/消息。我想知道如何实现相同的功能。有人可以指出我正确的方向吗?

标签: androidreal-timesipvoip

解决方案


这种应用程序应该使用推送通知(参考:https ://firebase.google.com/docs/cloud-messaging ),它为整个系统使用一个单一的套接字连接:每个应用程序都应该注册自己以接收推送,然后当服务器触发(FCM 支持许多语言,带有示例/教程)调用事件,然后将一个特殊的“消息”发送到应用程序(提供有关 IP 的一些信息或您想要的任何信息),该应用程序获取这些信息并以正确的方式运行。

不幸的是,FCM 在每月数千次通知后需要付款。还有其他类似的在线服务,但这些服务需要收费,因为它们要同时处理许多连接的用户,并且需要硬件和带宽。


推荐阅读