iOS获取网络信号及WIFI信号强度

获取WIFI信号强度 通过遍历UIStateBar拿到WiFi表识

- (void)getSignalStrength{
    UIApplication *app = [UIApplication sharedApplication];
    NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
    NSString *dataNetworkItemView = nil;
    
    for (id subview in subviews) {
        if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
            dataNetworkItemView = subview;
            break;
        }
    }
    
    int signalStrength = [[dataNetworkItemView valueForKey:@"_wifiStrengthBars"] intValue];
    
    NSLog(@"signal %d", signalStrength);
}

仅仅是为了测试makeDown的使用没有其他想法
这是一个连接

这是斜体是么 后面这个是加粗体

测试 测试
恩 我是山明大叔 没错是这样
哈哈哈哈 就是爱笑

再次声明前面都是在测试makedown的书写规范 但是总觉得没有点代码 总觉得少了点什么 于是就复制了份代码
好可以开启我的之路么了

获取手机网络信号 通过遍历UIStateBar

- (void)getNetworkType
{
    UIApplication *app = [UIApplication sharedApplication];
    NSArray *subviews = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
    for (id subview in subviews) {
        if ([subview isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
            int networkType = [[subview valueForKeyPath:@"dataNetworkType"] intValue];
            switch (networkType) {
                case 0:
                    NSLog(@"NONE");
                    break;
                case 1:
                    NSLog(@"2G");
                    break;
                case 2:
                    NSLog(@"3G");
                    break;
                case 3:
                    NSLog(@"4G");
                    break;
                case 5:
                {
                    NSLog(@"WIFI");
                }
                    break;
                default:
                    break;
            }
        }
    }
}

你可能感兴趣的:(iOS获取网络信号及WIFI信号强度)