#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger,JSNetworkStates) {
JSNetworkStatesUnknown,//未知
JSNetworkStates2G,//2G
JSNetworkStates3G,//3G
JSNetworkStates4G,//4G
JSNetworkStatesWifi,//Wifi
};
�
@interface JSNetworkTool : NSObject
///判断当前网络状态
- (JSNetworkStates)currentNetworkStates;
@end
///判断当前网络状态
- (JSNetworkStates)currentNetworkStates {
//拿到状态栏的子视图
NSArray *subViews = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
//保存网络状态码
JSNetworkStates state = JSNetworkStatesUnknown;
for (id child in subViews) {
if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
NSLog(@"childNetwork:%@",child);
//获取到状态栏码
NSInteger currentNetworkCode = [[child valueForKeyPath:@"dataNetworkType"] intValue];
NSLog(@"currentNetworkCode==%tu",currentNetworkCode);
switch (currentNetworkCode) {
case 0:
state = JSNetworkStatesUnknown;
break;
case 1:
state = JSNetworkStates2G;
break;
case 2:
state = JSNetworkStates3G;
break;
case 3:
state = JSNetworkStates4G;
break;
case 4 | 5:
state = JSNetworkStatesWifi;
break;
default:
break;
}
}
}
�
return state;
�
}
网友评论