Warm tip: This article is reproduced from serverfault.com, please click

android-应用程序关闭时如何实时接听电话/消息

(android - How to receive calls/messages real-time when the application is closed)

发布于 2021-01-12 14:31:16

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

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

Questioner
Sachith Kasthuriarachchi
Viewed
0
emandt 2021-01-13 00:48:25

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

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