ios 判断网络是否可用

来源:互联网 发布:有道翻译无网络连接 编辑:程序博客网 时间:2024/06/05 12:50

#import "isNetavilable.h"

#import <SystemConfiguration/SystemConfiguration.h>


@implementation isNetavilable

+(BOOL)isNetAvilable{

    BOOL bEnabled = FALSE;

    NSString *url =@"www.baidu.com";

    SCNetworkReachabilityRef ref =SCNetworkReachabilityCreateWithName(NULL, [urlUTF8String]);

    SCNetworkReachabilityFlags flags;

    

    bEnabled = SCNetworkReachabilityGetFlags(ref, &flags);

    

    CFRelease(ref);

    if (bEnabled) {

        //        kSCNetworkReachabilityFlagsReachable:能够连接网络

        //        kSCNetworkReachabilityFlagsConnectionRequired:能够连接网络,但是首先得建立连接过程

        //        kSCNetworkReachabilityFlagsIsWWAN:判断是否通过蜂窝网覆盖的连接,比如EDGEGPRS或者目前的3G.主要是区别通过WiFi的连接。

        BOOL flagsReachable = ((flags & kSCNetworkFlagsReachable) != 0);

        BOOL connectionRequired = ((flags &kSCNetworkFlagsConnectionRequired) != 0);

        BOOL nonWiFi = flags &kSCNetworkReachabilityFlagsTransientConnection;

        bEnabled = ((flagsReachable && !connectionRequired) || nonWiFi) ?YES : NO;

    }

    

    return bEnabled;

}


@end

0 0
原创粉丝点击