G'day Guys,
我一直在使用可达性API和可达性状态回调来确定应用程序是通过3G还是wifi连接的。这是一个作为现有硬件的语音扩展的应用程序,因此我们正在使用VoIP api在后台运行并接受呼叫等。
除了使用可达性状态回调来确定是否可以访问特定的IP端点之外,还有其他确定的方法吗?我可以使用ASIHTTPRequest,然后检查它是否超时,但从长远来看,这可能会给我带来潜在的问题。
我不是在寻找一个编程的答案,但更多的见解,其他开发人员将如何管理两者之间的漫游在后台,如果你有一个持久的连接。基本上,如果设备漫游到3G,我需要销毁设备上的会话,如果它漫游到Wifi,我需要重新创建会话。
可达性api将向您的应用程序提供连接更改通知,以便您可以知道何时连接从WWAN更改为wifi。不幸的是,它不会告诉你你是否已经从Edge切换到3G或LTE。Reachability API还具有测试特定主机的可达性的方法。所以,在你的应用程序中,你可以监听连接方法已经改变的通知,然后当它改变时,测试你的目标主机的可达性,并在那个时候决定是否重建会话或保持它完整。