Ios开发之根据状态栏获取网络的连接状态
2015-10-30 22:27
525 查看
Hi,我是White.tian。本文为原创,转载请注明出处。
大家在开发过程中,不乏会用到有时候获取手机是否联网,或者是当前的网络连接状态等。那么即有了以下内容。
根据状态栏获取网络状态,可以区分2G、3G、4G、WIFI,系统的方法,比较快捷。稍微不爽的就是万一连接的WIFI没有联网的话。
下面为代码区域
intDemoCodeClass::getDeviceNetworkAvailabl()
{
UIApplication *app = [UIApplicationsharedApplication];
NSArray *children = [[[appvalueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
int stateNumber =0;
NSString *state = [[NSStringalloc]init];
int netType =0;
state = @"false";
//获取到网络返回码
for (id childin children) {
if ([childisKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")])
{
//获取到状态栏
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
NSLog(@"%d",netType);
switch (netType) {
case0:
//state = @"无网络";
state = @"false";
NSLog(@"%s","0,无网络");
stateNumber = 0;
//无网模式
break;
case1:
//state = @"2G";
state = @"true";
NSLog(@"%s","1,2G");
stateNumber = 1;
break;
case2:
//state = @"3G";
state = @"true";
NSLog(@"%s","2,3G");
stateNumber = 1;
break;
case3:
//state = @"4G";
state = @"true";
NSLog(@"%s","3,4G");
stateNumber = 1;
break;
case5:
{
//state = @"WIFI";
state = @"true";
NSLog(@"%s","5,WIFI");
stateNumber = 1;
break;
}
default:
break;
}
}
}
//根据状态选择
//return state;
constchar *content = [statecStringUsingEncoding:NSASCIIStringEncoding];
//return content;
return stateNumber;
}
//state = @"无网络";
//state = @"2G";
//state = @"3G";
//state = @"4G";
//state = @"WIFI";
最后根据stateNumber值来判断就OK了。
大家在开发过程中,不乏会用到有时候获取手机是否联网,或者是当前的网络连接状态等。那么即有了以下内容。
根据状态栏获取网络状态,可以区分2G、3G、4G、WIFI,系统的方法,比较快捷。稍微不爽的就是万一连接的WIFI没有联网的话。
下面为代码区域
intDemoCodeClass::getDeviceNetworkAvailabl()
{
UIApplication *app = [UIApplicationsharedApplication];
NSArray *children = [[[appvalueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
int stateNumber =0;
NSString *state = [[NSStringalloc]init];
int netType =0;
state = @"false";
//获取到网络返回码
for (id childin children) {
if ([childisKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")])
{
//获取到状态栏
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
NSLog(@"%d",netType);
switch (netType) {
case0:
//state = @"无网络";
state = @"false";
NSLog(@"%s","0,无网络");
stateNumber = 0;
//无网模式
break;
case1:
//state = @"2G";
state = @"true";
NSLog(@"%s","1,2G");
stateNumber = 1;
break;
case2:
//state = @"3G";
state = @"true";
NSLog(@"%s","2,3G");
stateNumber = 1;
break;
case3:
//state = @"4G";
state = @"true";
NSLog(@"%s","3,4G");
stateNumber = 1;
break;
case5:
{
//state = @"WIFI";
state = @"true";
NSLog(@"%s","5,WIFI");
stateNumber = 1;
break;
}
default:
break;
}
}
}
//根据状态选择
//return state;
constchar *content = [statecStringUsingEncoding:NSASCIIStringEncoding];
//return content;
return stateNumber;
}
//state = @"无网络";
//state = @"2G";
//state = @"3G";
//state = @"4G";
//state = @"WIFI";
最后根据stateNumber值来判断就OK了。
相关文章推荐
- ios网络学习------4 UIWebView的加载本地数据的三种方式
- 4.1.2.3 格式字符例子
- TCP三次握手和四次挥手协议
- 网络编程之初探
- hihoCoder 1231 Border Length(北京赛区(2015)网络赛 E)
- 学习笔记三-网络的基本知识
- poj 3281 Dining【拆点网络流】
- 动手学习TCP:总结和索引
- 在HTTP请求URL后不仅可以传递字符串还可以传递数组
- [学习笔记]浏览器渲染原理
- iOS 9 配置HTTP
- HttpClient_httpclient 4.3.1 post get的工具类
- HttpClient_使用httpclient必须知道的参数设置及代码写法、存在的风险
- ubuntu下设置网络
- TCP/IP详解卷1-协议:TCP
- http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html
- YTKNetwork 使用基础教程
- TCP/IP详解 卷1 笔记 第6章 ICMP
- 【HTTP劫持和DNS劫持】实际JS对抗
- Android网络之加载网络中图片