这是转载网上某位朋友的,但是由于当时匆忙所以不清楚源网址了
+ (NETWORK_TYPE)getNetworkType
{
UIApplication *app = [UIApplication sharedApplication];
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;
}
}
NETWORK_TYPE 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;
}else if (n == 1){
netType = NETWORK_TYPE_2G;
}else if (n == 2){
netType = NETWORK_TYPE_3G;
}else{
netType = NETWORK_TYPE_WIFI;
}
}
log4Info(@"current network type:%d", netType);
return netType;
}