编辑:从iOS8开始,苹果推出了
PushKit框架,以发布我们需要做的配置VoIP应用程序的工作,它还减少了能源使用.你真的需要迁移到它
有关开发VoIP应用程序的提示,参考自Apple
互联网协议语音(VoIP)应用程序允许用户使用互联网连接而不是设备的蜂窝服务拨打电话.这样的应用程序需要维持与其关联服务的持久网络连接,以便它可以接收传入呼叫和其他相关数据.系统不是让VoIP应用程序始终保持唤醒状态,而是允许它们被暂停,并提供监视其套接字的工具.当检测到传入流量时,系统唤醒VoIP应用程序并将其套接字的控制权返回给它.
实施VoIP应用有几个要求:
>为您的应用启用Voice over IP后台模式. (由于VoIP应用涉及音频内容,因此建议您还启用音频和AirPlay背景模式.)您可以在Xcode项目的“功能”选项卡中启用后台模式.
>为VoIP使用配置其中一个应用程序的套接字.
>在移动到后台之前,调用setKeepAliveTimeout:handler:方法来安装要定期执行的处理程序.您的应用可以使用此处理程序来维护其服务连接.
>配置音频会话以处理往返过渡
积极使用.
>要确保在iPhone上获得更好的用户体验,请使用Core Telephony
用于调整与基于手机的手机相关的行为的框架
电话;请参阅核心电话框架参考.
>要确保VoIP应用程序的良好性能,请使用系统
配置框架,用于检测网络更改并允许您的应用
尽可能多地睡觉
启用VoIP后台模式可让系统知道应该允许应用程序根据需要在后台运行以管理其网络套接字.此键还允许您的应用播放背景音频(尽管仍然鼓励启用音频和AirPlay模式).支持此模式的应用程序也会在系统启动后立即在后台重新启动,以确保VoIP服务始终可用.
下面的代码显示了如何为Vo