Iphone Apple可达性示例在后台模式下不工作

Iphone Apple可达性示例在后台模式下不工作,iphone,voip,reachability,Iphone,Voip,Reachability,我已经看到论坛上有很多关于苹果的可达性类的条目,但是我还没有看到解决这个问题的方法 我正在开发一个VoIP应用程序,需要在后台模式下实时检测连接变化。SCNetworkReachability API应该可以完成这项工作,但我面临一些问题 首先,我已经从Apple v2.2下载了可达性示例代码,但我还无法使其在后台模式下工作。如果我在模拟器上启动应用程序并拔下网络电缆,效果会很好。但如果我在设备上尝试,启动应用程序,然后进入后台模式启用/禁用wifi,应用程序根本不会收到通知 我已设置应用程序不

我已经看到论坛上有很多关于苹果的可达性类的条目,但是我还没有看到解决这个问题的方法

我正在开发一个VoIP应用程序,需要在后台模式下实时检测连接变化。SCNetworkReachability API应该可以完成这项工作,但我面临一些问题

首先,我已经从Apple v2.2下载了可达性示例代码,但我还无法使其在后台模式下工作。如果我在模拟器上启动应用程序并拔下网络电缆,效果会很好。但如果我在设备上尝试,启动应用程序,然后进入后台模式启用/禁用wifi,应用程序根本不会收到通知

我已设置应用程序不在background=NO和Required background modes=App中运行,但未成功地在info.plist中提供IP语音服务。这个示例代码的Donoho版本也有同样的问题

第二个。。。我已经在我正在开发的基于Linphone的VoIP应用程序上集成了可访问性示例代码,并且。。。在后台模式下检测到连接更改

然而,它并不总是很好地工作:

如果我在打开wifi的情况下启动应用程序,则会检测到以下所有可达性更改,即使在后台模式下也是如此->确定 但是,如果我在未关闭wifi的情况下启动应用程序,该应用程序不会检测到wifi恢复…->击倒对手 因此,问题是:

我怎样才能使Apple Reachability示例在后台模式下工作? 和当可达性类看起来在后台模式下工作时,为什么它只有在第一次可达性检查发现连接可用时才真正工作? 我正在用iOS 5.1.1运行iPhone4上的应用程序,iOS版本>5.0可能有问题

我也检查了上一个有针对性的解决方案,但上一个版本的可达性示例已经解决了保留/发布问题


提前感谢

这可能会对您有所帮助,它还提供了示例代码。这会在您的internet出现故障或立即出现故障时通知您。

我已经讨论这个问题好几天了,最后这个问题看起来与NSStreamNetworkServiceTypeVoIp连接模式密切相关

似乎挂起的应用程序只有在与远程服务器建立活动的NSStreamNetworkServiceTypeVoIp连接后才能侦听连接更改

这解释了为什么可达性示例不响应后台模式下的连接更改应用程序内没有NSStreamNetworkServiceTypeVoIp连接,以及为什么voip应用程序在首次启动时wifi关闭时也不响应


所以,看起来这一次需要某种解决方法

谢谢Shantanu,但是这个示例代码正是我正在测试但没有成功的代码。我正在测试没有任何更改的代码,所以我无法解释为什么它在后台模式下不能按预期工作…你有没有找到解决方案。我也面临同样的问题。。寻找解决办法