确定何时在iPhone上出现退出后EDGE连接回来

问题描述:

我已将Apple的Reachability示例合并到我自己的项目中,以便知道我是否具有网络连接 - 如果我没有网络连接,不要打扰发送和请求。我决定使用状态通知实现,因为在后台更新可用性并立即获得当前结果似乎更容易,而不是在需要建立网络连接时启动同步请求。确定何时在iPhone上出现退出后EDGE连接回来

我的问题是,我开始在EDGE网络上获得漏报 - 手机已连接,但应用程序认为情况并非如此。我的理解是你在EDGE连接时没有收到通知,所以我的假设是我丢失了并在某个时候恢复了连接。重新启动应用通常足以查看网络连接。

这不是一个最佳的解决方案,所以我想知道是否有其他人遇到这个问题,并对解决方案有任何想法。

(我不知道这是否也适用于3G;我正在运行第一代iPhone)。

为了检测Wi-Fi,可达性通知对我来说似乎并不可靠。所以我只是使用轮询。每5秒检查一次似乎没有任何伤害。

- (void) checkReachability { 
    BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork); 

    // Do something... 

    [self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0]; 
} 
+0

感谢我打算今天结合可达性,所以你可能救了我的未来的自己一些时间:) – 2008-10-08 07:19:19

在网络上有一个很好的可达性示例。它工作得非常好: http://servin.com/iphone/iPhone-Network-Status.html

但是你看,当我尝试以我自己的方式使用它时,它只是炸弹。

尝试使用来实现它:

NSString *sCellNetwork;  
NSString *sNetworkReachable; 

if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN) 

{do it} 

else { 
    Network fail alert; 
}