ios 获取网络类型
2015-04-08 09:44
225 查看
//获取网络类型
+(NSString *)getNetWorkStates{
UIApplication *app = [UIApplication
sharedApplication];
NSArray *children = [[[app
valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
NSString *state = [[NSString
alloc]init];
int netType =
0;
//获取到网络返回码
for (id child
in children) {
if ([child
isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
//获取到状态栏
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
switch (netType) {
case
0:
state = @"无网络";
//无网模式
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);
}
}
//根据状态选择
return state;
}
但是这个方法有个bug,wifi'切换到无网络的时候检测不到,希望有大神们有解决的办法告诉我
+(NSString *)getNetWorkStates{
UIApplication *app = [UIApplication
sharedApplication];
NSArray *children = [[[app
valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
NSString *state = [[NSString
alloc]init];
int netType =
0;
//获取到网络返回码
for (id child
in children) {
if ([child
isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
//获取到状态栏
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
switch (netType) {
case
0:
state = @"无网络";
//无网模式
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);
}
}
//根据状态选择
return state;
}
但是这个方法有个bug,wifi'切换到无网络的时候检测不到,希望有大神们有解决的办法告诉我
相关文章推荐
- iOS 获取网络类型
- iOS获取网络类型的方法汇总
- iOS 手机网络类型和运营商怎么获取
- Unity IOS获取电量和网络类型
- iOS:关于获取网络类型和运营商信息
- iOS状态栏获取网络类型,运营商,电池电量,显示的系统时间等信息
- iOS 手机网络类型和运营商怎么获取
- 获取iOS项目名称及版本号以及网络类型的方法
- ios 获取网络类型
- iOS 获取网络状态 判断3G 、4G类型
- iOS:关于获取网络类型和运营商信息
- IOS模拟器能获取运营商信息,网络连接类型以及地理位置吗?
- iOS:关于获取网络类型和运营商信息
- IOS获取网络类型方法分析
- iOS 关于获取网络类型和运营商信息
- iOS获取当前网络类型(Wifi、2G、3G、4G)
- IOS模拟器能获取运营商信息,网络连接类型以及地理位置吗?
- iOS状态栏操作之获取WiFi信号强度,WiFi名字和IP,网络类型,运营商,电池电量,系统时间等
- iOS状态栏获取网络类型,运营商,电池电量,显示的系统时间等信息
- iOS:关于获取网络类型和运营商信息