美文网首页
iOS开发之runtime的运用-获取当前网络状态

iOS开发之runtime的运用-获取当前网络状态

作者: 半江瑟瑟 | 来源:发表于2016-09-07 20:06 被阅读36次
    - (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;
    
    }
    

    参考文章:
    http://www.jianshu.com/p/e23973a10ce0
    http://www.cnblogs.com/liufeng24/p/3624430.html

    相关文章

      网友评论

          本文标题:iOS开发之runtime的运用-获取当前网络状态

          本文链接:https://www.haomeiwen.com/subject/iszjettx.html