iOS獲取網絡的最新方法
typedef enum { NETWORK_TYPE_NONE= 0, NETWORK_TYPE_WIFI= 1, NETWORK_TYPE_3G= 2, NETWORK_TYPE_2G= 3,}NETWORK_TYPE;
然后通過獲取手機信號欄上面的網絡類型的標志
- (int)dataNetworkTypeFromStatusBar {
UIApplication app = [UIApplicationsharedApplication]; NSArray subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews]; NSNumber *dataNetworkItemView = nil;
for (id subview in subviews) { if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) { dataNetworkItemView = subview; break; } }
int netType = NETWORK_TYPE_NONE; NSNumber * num = [dataNetworkItemView valueForKey:@"dataNetworkType"]; if (num == nil) {
netType = NETWORK_TYPE_NONE;
}else{
int n = [num intValue]; if (n == 0) { netType = NETWORK_TYPE_NONE; }elseif (n == 1){ netType = NETWORK_TYPE_2G; }elseif (n == 2){ netType = NETWORK_TYPE_3G; }else{ netType = NETWORK_TYPE_WIFI; }
}
return netType;
}</pre>