iOS 判断详细的网络类型

来源:互联网 发布:ubuntu qq五笔输入法 编辑:程序博客网 时间:2024/06/08 10:47
我们在工作中经常会遇到一些判断是否连网和获取网络类型的操作,上网差了一些,有官方给的 Reachability 和afnetwork ,但是他们给的都不是精确的网络类型,还有一个朋友是这样做的:
<span style="font-size:18px;">+(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;            }        }    }//根据状态选择    return state;}</span>

根据状态栏获取网络状态,可以区分2G、3G、4G、WIFI,系统的方法,比较快捷。稍微蛋疼的是万一连接的WIFI没有联网的话···你懂得


下面我给出一个结合Afnetwork 的返回具体联网类型的方法吧。。

直接上链接 :点击打开链接


0 0