gpt4 book ai didi

iphone - Apple Reachability 示例在后台模式下不起作用

转载 作者:行者123 更新时间:2023-12-03 19:25:58 59 4
gpt4 key购买 nike

我看到论坛上有很多关于Apple的Reachability Class的条目,但我还没有看到这个的解决方案。

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

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

我在 info.plist 中设置了“应用程序不在后台运行=否”和“必需的后台模式=应用程序提供 IP 语音服务”,但没有成功。此示例代码的 Donoho 版本也存在同样的问题。

第二个...我已经在我正在开发的 VoIP 应用程序(基于 Linphone)上集成了可达性示例代码,并且...在后台模式下检测到连接变化...!!!

尽管如此,它并不总是有效:

  • 如果我在打开 wifi 的情况下启动应用程序,即使在后台模式下,也会检测到以下所有可达性更改 -> 确定
  • 但是如果我在没有关闭 wifi 的情况下启动应用程序,该应用程序不会检测到 wifi 恢复... -> KO

所以,问题是:

  • 如何让 Apple Reachability 示例在后台模式下运行?
  • 并且...当 Reachability 类看起来在后台模式下工作时,为什么它只有在第一次可达性检查发现连接可用时才真正起作用?

我在装有 iOS 5.1.1 的 iPhone4 上运行应用程序(iOS 版本 > 5.0 可能存在一些问题...??)

我也检查了 this thread 上的针对性解决方案,但最新版本的可达性示例已经解决了保留/释放问题...

提前致谢

最佳答案

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

看起来挂起的应用程序只有在与远程服务器建立了事件的 NSStreamNetworkServiceTypeVoIp 连接后才能监听连接更改。

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

所以,看起来这个问题需要某种解决方法......

关于iphone - Apple Reachability 示例在后台模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291879/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com