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

判断当前网络状态

作者: 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