获取网络状态,区分2G3G4GWIFI等,非reachability

http://www.cocoachina.com/bbs/read.php?tid=227757


CTTelephonyNetworkInfo http://www.open-open.com/lib/view/open1409821903369.html

 demo  http://www.bubuko.com/infodetail-749763.html



-(NSString *)getNetWorkStates{

    UIApplication *app = [UIApplicationsharedApplication];

    NSArray *children = [[[appvalueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];

    NSString *state = [[NSStringalloc]init];

    int netType =0;

    //获取到网络返回码

    for (id childin children) {

        if ([childisKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {

            //获取到状态栏

            netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];

            

            switch (netType) {

                case0:

                    state = @"无网络";

                    //无网模式

                    break;

                case1:

                    state = @"2G";

                    break;

                case2:

                    state = @"3G";

                    break;

                case3:

                    state = @"4G";

                    break;

                case5:

                {

                    state = @"WIFI";

                }

                    break;

                default:

                    break;

            }

        }

    }

    //根据状态选择

    return state;

}

你可能感兴趣的:(获取网络状态,区分2G3G4GWIFI等,非reachability)