美文网首页
判断当前网络状态

判断当前网络状态

作者: hAo_JS | 来源:发表于2016-11-03 19:08 被阅读0次
#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;
�
}

相关文章

网友评论

      本文标题:判断当前网络状态

      本文链接:https://www.haomeiwen.com/subject/mzhiuttx.html