iphone 判断当前网络状态
1、添加 framework:
将 SystemConfiguration.framework 添加进工程。
2、下载 http://download.csdn.net/detail/svrsimon/4458137
复制里面的 Reachability.h 和 Reachability.m 到项目中
3、调用的代码:
-(NSString*) GetCurrntNet
{
NSString* result;
Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];
switch ([r currentReachabilityStatus]) {
caseNotReachable: // 没有网络连接
result=nil;
break;
caseReachableViaWWAN: // 使用3G网络
result=@"3g";
break;
caseReachableViaWiFi: // 使用WiFi网络
result=@"wifi";
break;
}
return result;
}
以上代码在虚拟机中的模拟器上测试,有异常,难道测试网络联通不能使用模拟器?
另外,不管是不是插着网线,模拟器的WIFI始终是连着的,不管电脑本身的网络是否断开(同样是在虚拟机中)
+(BOOL) IsEnableWIFI { //始终返回YES
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
}
而3G/GPRS始终是断开的
+ (BOOL) IsEnable3G { //一直返回NO
return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
}