iOS获取网络的最新方法(自己试了下没什么问题)

typedef enum {
   NETWORK_TYPE_NONE= 0,
   NETWORK_TYPE_WIFI= 1,
   NETWORK_TYPE_3G= 2,
   NETWORK_TYPE_2G= 3,

}NETWORK_TYPE;

然后通过获取手机信号栏上面的网络类型的标志
+ (int)dataNetworkTypeFromStatusBar {

   UIApplication *app = [UIApplicationsharedApplication];
   NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
   NSNumber *dataNetworkItemView = nil;

   for (id subview in subviews) {
       if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
           dataNetworkItemView = subview;
           break;
       }
   }

int netType = NETWORK_TYPE_NONE;
NSNumber * num = [dataNetworkItemView valueForKey:@"dataNetworkType"];
if (num == nil) {

       netType = NETWORK_TYPE_NONE;

   }else{

int n = [num intValue];
if (n == 0) {
           netType = NETWORK_TYPE_NONE;
       }elseif (n == 1){
           netType = NETWORK_TYPE_2G;
       }elseif (n == 2){
           netType = NETWORK_TYPE_3G;
       }else{
           netType = NETWORK_TYPE_WIFI;
       }

   }

return netType;
}

如果发现问题,请及时告知,谢谢!

时间: 2024-08-23 21:40:00

iOS获取网络的最新方法(自己试了下没什么问题)的相关文章

iOS系统网络抓包方法

在进行iOS开发过程中,经常会遇到各种各样的网络访问问题,以前苦于没有抓包工具,很多网络问题解决起来很痛苦.现在终于好了,本文提供两种方式进行网络抓包: 1. 网络共享 + 可视化抓包工具 基本原理 原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在MAC系统上也可以使用Paros工具). 现在以MAC系统下Paros工具为例,详细描述下抓包过程: 操作步骤 1)  首先将MAC电脑的以太网共享给airport,使

iOS获取网络时间与转换格式

[NSDate date]可以获取系统时间,但是会造成一个问题,用户可以自己修改手机系统时间,所以有时候需要用网络时间而不用系统时间.获取网络标准时间的方法: 1.先在需要的地方实现下面的代码,创建一个URL并且连接 1 NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"]; 2 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 3 NSURLConnection

iOS获取网络类型的四种方法

Reachability类只能区分WIFI和WWAN类型,却无法区分2G网和3G网. 网上也有些方法,却都存在Bug. 经过网上查找资料和测试,基本上总结了以下几种方法: 1.使用导航栏的方式:(私有API) 代码: typedef enum { NetWorkType_None = 0, NetWorkType_WIFI, NetWorkType_2G, NetWorkType_3G, } NetWorkType; UIApplication *application = [UIApplica

iOS 获取网络状态

在iOS开发者,获取网络状态比较常用 -(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews]; NSString *state = nil; int n

ios 获取网络类型

//获取网络类型 +(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews]; NSString *state = [[NSString alloc]ini

IOS 获取网络图像尺寸 更改 图像色彩值 什么一套方法灰色

直接在代码 头文件 // 图片处理 0 半灰色 1 灰度 2 深棕色 3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelType:(UIImageGrayLevelType)type; //色值 变暗多少 0.0 - 1.0 +(UIImage*)imageWithImage:(UIImage*)image darkValue:(float)darkValue; /** 获取网络图片的Size, 先通过文件头来获取图片大小 假设失败

iOS 获取网络数据

从网络上获取个人用户信息,解析数据将其展示在页面上

iOS 获取沙盒路径方法

//获取家目录路径的函数: NSString *homeDir = NSHomeDirectory(); //获取Documents目录路径的方法: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDir = [paths objectAtIndex:0]; //获取Caches目录路径的方法: NSArray *paths

iOS获取设备型号的方法

1. [UIDevice currentDevice].model   自己写的看只抓到模拟器和iPhone.暂时不推荐. 2.自己写的找的方法再添加.直接  NSString * deviceModle= [selfdoDevicePlatform]; 即可获得?设备型号?- (NSString*) doDevicePlatform { size_t size; int nR = sysctlbyname("hw.machine", NULL, &size, NULL, 0)