IOS中提供了一个有效的方法检测当前的网络状态,如
是3g还是2g,是移动还是电信,网络是连接还是断开等。
(1)监听网络是否连通:网络 TCP WIFI
首先注册一个监听通知:
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(reachabilityChanged:)name:kReachabilityChangedNotificationobject:nil];
分别用三种方式初始化实例:self.hostReachability = [ReachabilityreachabilityWithHostName:remoteHostName];
self.internetReachability = [ReachabilityreachabilityForInternetConnection];
self.wifiReachability = [ReachabilityreachabilityForLocalWiFi];
启动当前监听事件:
[self.hostReachabilitystartNotifier];
[self.internetReachabilitystartNotifier];
[self.wifiReachabilitystartNotifier];
(2)监听运营商
CTTelephonyNetworkInfo *NetworkInfo = [[CTTelephonyNetworkInfoalloc]init];
NSString *NetworkCode = [[NetworkInfosubscriberCellularProvider]mobileNetworkCode];
如果当前NetworkCode为00表示移动信号。其它运营商类似。
(3)监听当前手机制式
NetworkInfo.currentRadioAccessTechnology 可以判断是GSM EDGE WCDMA 等等。