iOS判断网络连接类型

原创 2015年07月09日 15:29:24

有时候应用需要判断网络是否连接,网络连接的类型。可以使用

    Reachability *r = [Reachability reachabilityWithHostName:@"www.baidu.com"];
    switch ([r currentReachabilityStatus]) {
        case NotReachable:
            NSLog(@"没有网络");
            break;
        case ReachableViaWWAN:
            NSLog(@"正在使用3G网络");
            break;
        case ReachableViaWiFi:
            NSLog(@"正在使用wifi网络");
            break;
    }


如果用这种方法判断是否连接网络,在连接了WiFi但WiFi没有连接到互联网时,currentReachabilityStatus会阻塞主线程,直到超时,可以用

-(BOOL)connectedToNetWork
{
    struct sockaddr_in zeroAddress;
    bzero(&zeroAddress, sizeof(zeroAddress));
    zeroAddress.sin_len = sizeof(zeroAddress);
    zeroAddress.sin_family = AF_INET;
    
    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
    SCNetworkReachabilityFlags flags;
    
    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
    CFRelease(defaultRouteReachability);
    
    if (!didRetrieveFlags) {
        NSLog(@"Error. Count not recover network reachability flags");
        return NO;
    }
    
    BOOL isReachable = flags & kSCNetworkFlagsReachable;
    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
    return (isReachable && !needsConnection) ? YES : NO;
}

先判断是否连接到互联网,再用上面的方法判断网络的类型

相关文章推荐

iOS网络连接状态判断 JPNetwork

  • 2013年12月26日 22:17
  • 2KB
  • 下载

iOS开发 - Swift实现检测网络连接状态及网络类型

一、前言 在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要。本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络、Wifi)。 二、如何实现Reachabil...

网络连接类型判断

原文地址:网络连接类型判断作者:xakzhong 1.网络连接类型判断 NetworkInfo activeNetInfo = connectivityManager.ge...

iOS之Reachability和AFN判断网络连接状态

1.Reachability // 监听网络状态改变的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selec...

使用ios自带sample判断网络连接

开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。 Reachability Apple 的 例程 Reachability...
  • gnicky
  • gnicky
  • 2012年05月10日 22:53
  • 1432

iOS开发——网络连接判断

iOS开发必然会涉及网络操作,作为优化用户体验的第一步,在请求网络前,往往首先需要判断客户端是否连接网络,并给用户提示。然后用户才会去进行打开网络或连接WiFi等操作。下面我将会使用苹果提供的Reac...

iOS 判断网络连接状态的几种方法

一).Reachability 添加源文件及Framework Apple 的官方例子 Reachability 中介绍了获取、检测设备当前网络状态的方法。在你的程序中,需要把该工程中的Reacha...

iOS中如何判断网络连接状态

最近的项目中有的地方需要判断网络连接 参考 Reachability 文件 并进一步封装  现在把代码放到网上 大家可以做一个参考 导入 Reachability.h / .m 时记得导入  syst...

IOS 判断设备 与 判断网络连接状态

一、判断设备 01 //设备名称 02 return [UIDevice currentDevice].name; ...

【ios开发】如何判断当前网络连接状态(网络是否正常)

众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断?其实很简单。 前提:工程添加:...
  • mad1989
  • mad1989
  • 2013年05月29日 00:53
  • 63532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS判断网络连接类型
举报原因:
原因补充:

(最多只允许输入30个字)