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