【发布时间】:2012-07-02 18:16:31
【问题描述】:
我看到论坛上有很多关于 Apple 的可达性类的条目,但我还没有看到解决这个问题的方法。
我正在开发一个 VoIP 应用程序,该应用程序需要在后台模式和实时检测连接变化。 SCNetworkReachability API 应该可以完成这项工作,但我遇到了一些问题......
首先,我从 Apple (v2.2) 下载了 Reachability 示例代码,但我无法让它在后台模式下工作。如果我在模拟器上启动应用程序并插入/拔出网络电缆,效果会很好。但如果我尝试在设备上启动应用程序,然后进入后台模式以启用/禁用 wifi,则根本不会通知应用程序。
我在 info.plist 中设置了“应用程序不在后台运行 = NO”和“所需的后台模式 = 应用程序提供 IP 语音服务”但没有成功。此示例代码的 Donoho 版本也存在同样的问题。
第二个...我已将 Reachability 示例代码集成到我正在开发的 VoIP 应用程序(基于 Linphone)上,并且...在后台模式下检测到连接更改...!!!
尽管如此,它并不总是很好用:
- 如果我在打开 wifi 的情况下启动应用程序,则会检测到以下所有可达性更改,即使在后台模式下也是如此 -> OK
- 但如果我在没有关闭 wifi 的情况下启动应用程序,应用程序不会检测到 wifi 恢复... -> KO
所以,问题是:
- 如何让 Apple Reachability 示例在后台模式下工作?
- 并且...当 Reachability 类看起来在后台模式下工作时,为什么它只有在第一次可达性检查发现连接可用时才真正起作用?
我在 iOS 5.1.1 的 iPhone4 上运行应用程序(iOS 版本 > 5.0 可能有问题...??)
我也检查了this thread 上的针对性解决方案,但最后一个版本的可达性示例已经解决了保留/释放问题...
提前致谢
【问题讨论】:
-
您对此有什么解决方案吗?我也面临同样的问题..寻找解决方案
标签: iphone voip reachability