分享

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

 流浪者lyz 2015-11-30


作者:离离原上草时间:2014-09-09 10:58 查看网页版

代码如下:

+(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;
}
根据状态栏获取网络状态,可以区分2G、3G、4G、WIFI,系统的方法,比较快捷。稍微蛋疼的是万一连接的WIFI没有联网的话···你懂得

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多