在WiFi重新连接和设备重启(iOS)时保持VoIP套接字?
我有一个VoIP套接字设置,即使在挂起状态下也能正常工作,并且每10分钟ping一次服务器。在WiFi重新连接和设备重启(iOS)时保持VoIP套接字?
但是,当WiFi连接断开时,即使处于挂起状态,我也不知道如何重新连接到服务。设备重启也是如此。
任何经验?
那么,如果设备重新启动,没有办法再次启动您的应用程序。用户将不得不启动你的应用程序。
当你连接丢失,由于som种netwerk错误,你的应用程序在后台运行iOS将暂停你的应用程序。因此,用户将不得不再次启动应用程序才能使其工作。
setKeepAliveTimeout:处理器:
配置用于VoIP应用周期性处理程序。
- (BOOL)setKeepAliveTimeout:(NSTimeInterval)超时处理程序:(无效(^)(无效))keepAliveHandler
参数
超时
的最大时间间隔(以秒为单位)你的应用程序应该被唤醒以检查其VoIP连接。最小可接受的超时值是600秒。 keepAliveHandler 执行维护VoIP网络连接所需任务的模块。将此参数设置为零将释放当前的处理程序块并阻止UIKit安排下一次唤醒。
返回值
YES是否安装或没有处理程序,如果事实并非如此。
讨论
画外音-IP(VoIP)的应用程序可以使用此方法来安装处理程序,其任务是保持与VoIP服务器应用程序的网络连接。此处理程序保证在指定的超时值之前被调用,但可能会以稍微不同的时间间隔调用,以便更好地将处理程序的执行与其他系统任务对齐,从而节省功耗。您的处理程序最多需要10秒才能执行所需的任务并退出。如果它在时间到期之前没有退出,应用程序将被暂停。
超时值和处理程序不会在应用程序启动之间持续存在。因此,如果您的应用程序因任何原因被终止,则必须在下次启动周期中重新安装处理程序。
对于调用此方法成功,应用程序必须在与Info.plist文件中的UIBackgroundModes键相关联的数组中具有voip值。调用此方法将替换以前安装的处理程序和超时值(如果有)。
可用性
适用于iOS 4.0及更高版本。
宣布
UIApplication.h
这只是文档中的复制粘贴,请包含指向它的链接 – jrturton 2012-02-21 11:37:12
-
坏的WiFi:iOS不让你选择网络绑定到你的插座,意思是:
- 如果设备有只有2G/3G/4G网络,它会绑定你的套接字。
- 如果你也有WiFi(也是无线的WiFi),它会绑定你的套接字,尽管它对你不好。
- 重新连接:您可以使用您的10分钟保持活动块的UIApplication为了试图解决您的连接每隔10分钟:唤醒每10分钟尝试重新连接。
- 应用程序自动启动:设备重启后,VoIP应用程序会运行,如果它在重新启动之前运行。 (此的VoIP应用privilegue也崩溃后启动您的应用程序)
- 注意:您可以检测,如果你被要求的UIApplication其applicationState自动启动,在的applicationDidFinishLaunching。
- 提示:使用后台任务在后台执行操作时。
- 链接:
我听说过的东西,iOS的做一些事情上重新启动registred /维持VoIP的插座。 – Geri 2012-02-02 15:51:16
所以你说有没有办法实现像上面的东西? – Geri 2012-02-02 15:51:46
暂停应用程序不是问题。我的应用程序处于暂停模式,但VoIP回调被调用。我只是想知道是否有与Reachability框架类似的东西,等等。 – Geri 2012-02-02 16:01:10