您的位置:首页 > 理论基础 > 计算机网络

ios 判断网络是否可用工具类

2015-02-28 14:35 477 查看
//
// NetTool.m
// MusicLove
//
// Created by niuxinghua on 15/2/10.
// Copyright (c) 2015年 Hjojo. All rights reserved.
//

#import "NetTool.h"
@implementation NetTool
+(BOOL) isNetworkEnabled
{
BOOL bEnabled =
FALSE;
NSString *url =
@"www.baidu.com";
SCNetworkReachabilityRef ref =
SCNetworkReachabilityCreateWithName(NULL, [url
UTF8String]);
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;
}@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: