ios中判断当前手机的网络状态
2015-03-16 17:14
267 查看
typedef enum {
NETWORK_TYPE_NONE= 0,
NETWORK_TYPE_2G= 1,
NETWORK_TYPE_3G= 2,
NETWORK_TYPE_4G= 3,
NETWORK_TYPE_5G= 4,// 5G目前为猜测结果
NETWORK_TYPE_WIFI= 5,
}NETWORK_TYPE;
//方法可以声明成静态方法或者类方法,定义的枚举最好在.h文件中
+(NETWORK_TYPE)getNetworkTypeFromStatusBar {
UIApplication *app = [UIApplication sharedApplication];
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;
}
}
NETWORK_TYPE nettype = NETWORK_TYPE_NONE;
NSNumber * num = [dataNetworkItemView valueForKey:@"dataNetworkType"];
nettype = [num intValue];
return nettype;
}
NETWORK_TYPE_NONE= 0,
NETWORK_TYPE_2G= 1,
NETWORK_TYPE_3G= 2,
NETWORK_TYPE_4G= 3,
NETWORK_TYPE_5G= 4,// 5G目前为猜测结果
NETWORK_TYPE_WIFI= 5,
}NETWORK_TYPE;
//方法可以声明成静态方法或者类方法,定义的枚举最好在.h文件中
+(NETWORK_TYPE)getNetworkTypeFromStatusBar {
UIApplication *app = [UIApplication sharedApplication];
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;
}
}
NETWORK_TYPE nettype = NETWORK_TYPE_NONE;
NSNumber * num = [dataNetworkItemView valueForKey:@"dataNetworkType"];
nettype = [num intValue];
return nettype;
}
相关文章推荐
- ios开发——代码实现获得手机系统的名字和版本号&当前网络状态
- 【ios开发】如何判断当前网络连接状态(网络是否正常)
- IOS中如何判断当前网络状态
- iOS如何获取手机当前的网络状态
- iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G)
- iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G) by徐文棋
- 【ios开发】如何判断当前网络连接状态(网络是否正常)
- Android 判断手机当前的网络状态
- iOS-iPhone开发之判断当前的网络状态
- iOS 开发判断监测当前网络状态
- IOS开发获得当前手机的网络状态
- IOS中如何判断当前网络状态是否可用
- IOS中如何判断当前网络状态
- 【iOS解决方案】如何判断当前网络连接状态(网络是否正常)
- iOS 判断当前网络状态的三种方法
- iOS如何获取手机当前的网络状态
- iOS获取手机当前的网络状态
- AFNetworking判断当前手机的网络状态
- IOS中如何判断当前网络状态
- 【ios开发】如何判断当前网络连接状态(网络是否正常)