我已经看到论坛上有很多关于Apple的Reachability Class的条目,但是我没有看到这个的解决方案。
我正在开发一款需要在后台模式和实时检测连接变化的VoIP应用。 SCNetworkReachability API应该可以胜任,但我遇到了一些问题......
首先,我从Apple(v2.2)下载了Reachability示例代码,但我无法在后台模式下运行。如果我在模拟器上启动应用程序并插入/拔出网络电缆,它的效果很好。但是,如果我尝试使用该设备,启动应用程序然后进入后台模式启用/禁用wifi,则该应用程序根本没有得到通知。
我在info.plist中设置了“应用程序不在后台运行=否”和“必需的后台模式=应用程序提供IP语音服务”但没有成功。此示例代码的Donoho版本具有相同的问题。
第二个...我已经将Reachability示例代码集成在我正在开发的VoIP应用程序(基于Linphone)上......并且......在后台模式下检测到连接变化...... !!!
尽管如此,它始终不能很好地运作:
所以,问题是:
我正在使用iOS 5.1.1在iPhone4上运行应用程序(可能是iOS版本的一些问题> 5.0 ...... ??)
我已经检查了this thread上的尖端解决方案,但最新版本的Reachability样本已经处理了保留/释放问题......
提前致谢
答案 0 :(得分:0)
我已经解决了这个问题好几天了,最后问题看起来与NSStreamNetworkServiceTypeVoIp连接模式密切相关,
看起来暂停的应用只有在与远程服务器建立了活动的NSStreamNetworkServiceTypeVoIp连接后才能侦听连接更改。
这就解释了为什么Reachability样本没有响应后台模式中的连接变化(应用程序中没有NSStreamNetworkServiceTypeVoIp连接)以及为什么voip应用程序在第一次启动时无法响应wifi响应...
所以,看起来这个需要某种解决方法......
答案 1 :(得分:-1)
此Reachability可能会为您提供样本代码。这会在您的互联网出现故障或立即显示时通知您。