首页 > 代码库 > iOS 网络判定

iOS 网络判定

 

由于流量精灵需要在 蜂窝数据或者3G 环境下进行流量监控因此需要判定3G 环境

将 SystemConfiguration.framework 添加进工程:

iOS 判断网络是否可用 - winter_鸿鹄 - 独步雨中
引入头文件
#import <SystemConfiguration/SystemConfiguration.h>
//-判断当前网络是否可用

+(BOOL) isNetworkEnabled

{

    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:判断是否通过蜂窝网覆盖的连接,比如EDGE,GPRS或者目前的3G.主要是区别通过WiFi的连接。

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

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

        BOOL nonWiFi = flags &kSCNetworkReachabilityFlagsTransientConnection;

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

    }

    

    return bEnabled;

}

 

当作记录吧

iOS 网络判定