// Get network Type
+ (nsstring *) getnetworkstates{
uiapplication *app = [uiapplicationsharedapplication ];
nsarray *children = [[Appvalueforkeypath:@ "StatusBar"] valueforkeypath:@ "Foregroundview"]subviews];
nsstring *state = [[nsstringalloc] Init ];
int netType =0;
// get to the network return code
for (ID Child in children) {
if ([childiskindofclass:nsclassfromstring (@ "Uistatusbardatanetworkitemview")]) {
// get to status bar
NetType = [[ child Valueforkeypath:@ "Datanetworktype"]intvalue ];
Switch (netType) {
case 0:
state = @" No network " ;
// no network mode
break;
Case 1:
state = @ "2G" ;
break;
case 2:
state = @ "3G" ;
break;
case 3:
state = @ "4G" ;
break;
case 5:
{
state = @ "WIFI" ;
}
break;
default:
break;
}
NSLog(@ "%@", state);
}
}
// based on state selection
return state ;
}
But this method has a bug,wifi ' switch to no network when detected, I hope there is a solution to the great God to tell me
iOS Get network type