iOS voip 应用程序休眠和可达性已更改,我可以收到通知吗?

Posted

技术标签:

【中文标题】iOS voip 应用程序休眠和可达性已更改,我可以收到通知吗?【英文标题】:iOS voip app sleeps & Reachability has changed, can I get notification? 【发布时间】:2011-08-16 15:02:52 【问题描述】:

我正在为 ios 构建一个 voip 应用程序,我正在处理后台工作。

到目前为止,我让 iOS 在应用程序睡眠时监听 voip 套接字并在传入数据时唤醒它。

我的问题是: 当可达性发生变化时(Wifi -> 3G、Wifi -> 其他 Wifi 等) 并且应用程序已暂停,我可以收到一些通知以重新连接我的 voip 套接字吗?

谢谢。

【问题讨论】:

【参考方案1】:

答案是“是”和“否”:

注册 Reachability 网络更改通知。 如果应用程序在其 voip 套接字(请参阅链接)连接时进入后台暂停,则网络更改应用程序将在后台唤醒 10 秒。 如果应用程序在其 voip 套接字未连接时进入后台挂起,则网络更改应用程序将不会唤醒。 网络丢失和无连接进入后台场景的解决方案可能是修复您可以在 UIApplication 中安排的 Keep-Alive 块中的连接。 注意:在上述 10 秒内,您可以请求后台任务以完成重新连接工作。

链接

VoIP socket in iOS VoIP socket wakeups - iOS 5 Watchdog

【讨论】:

【参考方案2】:

如果您有后台套接字,您可以订阅可达性通知,它们会在后台触发,以便您可以对可达性更改执行操作。如果您在点击后台时没有取消订阅通知,如果订阅通知的对象是您的应用程序委托,您仍然会收到通知。

【讨论】:

以上是关于iOS voip 应用程序休眠和可达性已更改,我可以收到通知吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在互联网可达性上使用 ios 快速更改状态栏颜色?

即使应用程序已注册为 VOIP,iOS9 套接字连接也会在应用程序暂停时终止

暂停应用程序的可达性更改 iOS 系统通知

iOS在一分钟内杀死CallKit VoIP应用程序在后台工作

ios设备中未收到VoIP推送[关闭]

在 iOS 13 设备中无法在后台/挂起状态下接收 VoIP 消息