首先,引入系统的Reachability类,不知道怎么引入的话,在Xcode,按下shift+command+0,搜索Reachability,看到图中所选的工程下载即可。

Apple Reachability
网络监测

Reachability.png

并导入相关.h文件

#import<CoreTelephony/CTTelephonyNetworkInfo.h>

引入后,Reachability.h文件里面修改NetworkStatus的枚举,

typedef enum : NSInteger {NotReachable = 0,ReachableViaWiFi,ReachableViaWWAN,kReachableVia2G,kReachableVia3G,kReachableVia4G
} NetworkStatus;

在修改下Reachability.m文件
找到

- (NetworkStatus)networkStatusForFlags:(SCNetworkReachabilityFlags)flags

修改下面的代码

if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN){
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0){CTTelephonyNetworkInfo * info = [[CTTelephonyNetworkInfo alloc] init];NSString *currentRadioAccessTechnology = info.currentRadioAccessTechnology;if (currentRadioAccessTechnology){if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]){returnValue =  kReachableVia4G;}else if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyEdge] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyGPRS]){returnValue =  kReachableVia2G;}else{returnValue =  kReachableVia3G;}return returnValue;}}if ((flags & kSCNetworkReachabilityFlagsTransientConnection) == kSCNetworkReachabilityFlagsTransientConnection){if((flags & kSCNetworkReachabilityFlagsConnectionRequired) == kSCNetworkReachabilityFlagsConnectionRequired){returnValue =  kReachableVia2G;return returnValue;}returnValue =  kReachableVia3G;return returnValue;}returnValue = ReachableViaWWAN;}

如何使用?

在AppDelegate里加入

    Reachability* curReach = [note object];NSParameterAssert([curReach isKindOfClass: [Reachability class]]);NetworkStatus status = [curReach currentReachabilityStatus];switch (status){case NotReachable:break;case ReachableViaWiFi:case ReachableViaWWAN:break;case kReachableVia2G:break;case kReachableVia3G:break;case kReachableVia4G:break;}
转自:http://www.jianshu.com/p/efcfa3c87306

iOS网络监测如何区分2、3、4G(Reachability)相关推荐

  1. 如何区分2G/3G/4G基站

    如何根据一个基站的lac和cellid区分这个基站是2G,3G还是4G基站,这里做一下总结. 国内运营商在建网初期就对LAC代码按省进行了分配,每个省/自治区/直辖市都分配到了一定数量的LAC代码区间 ...

  2. ionic2 中的网络监测功能

    参考:http://ionicframework.com/docs/v2/native/network/ (后须还将发表其他我正在ionic2使用的插件或功能) 增加网络监测功能的cordova插件: ...

  3. 使用eBPF 技术进行四层网络监测

    互联网的本质就是一系列的网络协议,按照功能不同,分工不同,其常被分为七层.五层.四层网络结构.七层,五层.四层的概念,只是人为的划分而已,是为了区分出哪一层是干什么用的. 今天咱们主要讲"四 ...

  4. iOS网络高级编程:iPhone和iPad的企业应用开发之错误处理

    本章内容 ●    iOS应用中的网络错误源 ●    检测网络的可达性 ●    错误处理的经验法则 ●    处理网络错误的设计模式 到目前为止,我们所介绍的iPhone与其他系统的网络交互都是基 ...

  5. iOS网络缓存扫盲篇--使用两行代码就能完成80%的缓存需求

    原文地址:https://github.com/ChenYilong/ParseSourceCodeStudy/blob/master/02_Parse的网络缓存与离线存储/iOS网络缓存扫盲篇.md ...

  6. iOS网络编程-iCloud键值数据存储编程实例

    iCloud键值数据存储设计 iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击"设置iCloud数据"按钮,将控件状态保存到iCloud服务器.右图是设备2 ...

  7. iOS网络开发中的同步、异步和请求队列

    在iOS网络编程中,我们经常会遇到线程的同步和异步问题,同时为了对异步请求更加精准丰富的控制,我们还常常在iOS中使用请求队列,下面就来谈谈iOS开发中同步.异步以及请求队列的使用方法. 1. 同步意 ...

  8. [深入浅出Cocoa]iOS网络编程之Socket

    一,iOS网络编程层次模型 在前文<深入浅出Cocoa之Bonjour网络编程>中我介绍了如何在Mac系统下进行 Bonjour 编程,在那篇文章中也介绍过 Cocoa 中网络编程层次结构 ...

  9. iOS网络编程开发—HTTP协议

    iOS网络编程开发-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

最新文章

  1. ajax的loading方法,Ajax加载中显示loading的方法
  2. cap mysql_.NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法
  3. 10个性鼠标指针主题包_每个人都应该知道的十大电脑鼠标使用技巧,别说你不知道...
  4. uni-app手机横屏后界面错乱解决办法
  5. redis同步效率秒_redis过期策略、内存淘汰策略、持久化方式、主从复制
  6. C语言实例第2期:判断某一年是否为闰年
  7. Java基础之集合归总
  8. 函数计算帮助石墨文档突破性能瓶颈,有效节省服务器成本
  9. Java各种数据类型的转换
  10. 讲讲金融业务(一)--自助结算终端POS
  11. Eclipse插件安装之,使用(已经下载的zip)安装包直接安装插件(例:glassfish 插件 plugin)
  12. [MySQL]SQL优化工具SQLAdvisor
  13. wps office 2019中文版
  14. webservice的几种调用方式
  15. 0到1认识计算机:通俗讲解计算机工作原理
  16. 以太坊地址和公钥_《每日一课》第九课:什么是钱包、钱包地址、私钥、公钥?...
  17. [Hadoop in China 2011] 人人网:基于Hadoop的SNS统计和聚类推荐
  18. 可惜知乎没有注销账号的选项
  19. 右上角的引用文献格式_论文要引用的小符号右上角怎么打?
  20. Tensorflow中的多层感知器学习

热门文章

  1. 直接看见宇宙黑洞不是梦?最新天文研究表示有重大成果
  2. 计算机网络思科平台第五章测验答案
  3. Ionic项目修改应用图标和启动页
  4. uniapp项目运行到小米平板调试
  5. WMI Provider Host(wmiprvse.exe)占用CPU高的解决方案
  6. 查看java安装路径[linux]
  7. C++break语句用法
  8. PS 的常见抠图工具
  9. 免费音乐开放接口api_5种免费开放的音乐制作工具
  10. 计算机工程师系列职称答辩,评中级工程师职称需要答辩吗?申报人需哪些条件?...