iOS 网络判断(2G、3G、4G、WiFi、无网络)

  • 网络判断
- (IBAction)btnClick:(UIButton *)sender {
    
    int networkType = [self getNetworkStates];
    
    switch (networkType) {
        case 1:
        {
            [sender setTitle:@"2G" forState:0];
        }
            break;
        case 2:
        {
            [sender setTitle:@"3G" forState:0];
        }
            break;
        case 3:
        {
            [sender setTitle:@"4G" forState:0];
        }
            break;
        case 5:
        {
            [sender setTitle:@"WiFi" forState:0];
        }
            break;
        default:
        {
            [sender setTitle:@"无网络" forState:0];
        }
            break;
    }
}

// 判断网络类型
- (int)getNetworkStates
{
    NSArray *subviews = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];

    for (id child in subviews) {
        if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
            return [[child valueForKeyPath:@"dataNetworkType"] intValue];
        }
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容