ios - 如何在不使用 Reachability 类的情况下获取 iPhone 当前的事件网络类型(wifi 或 3G)

标签 ios objective-c reachability

在我的例子中,我无法使用 Reachability 类,因为我在无法访问互联网的 wifi 网络中使用 iPhone。这只是一个Intranet wifi。

这意味着,Reachability 类将返回Not Reachable

最佳答案

 -(void)newtworkType {

 NSArray *subviews = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"]subviews];
NSNumber *dataNetworkItemView = nil;

for (id subview in subviews) {
    if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
        dataNetworkItemView = subview;
        break;
    }
}


switch ([[dataNetworkItemView valueForKey:@"dataNetworkType"]integerValue]) {
    case 0:
        NSLog(@"No wifi or cellular");
        break;

    case 1:
        NSLog(@"2G");
        break;

    case 2:
        NSLog(@"3G");
        break;

    case 3:
        NSLog(@"4G");
        break;

    case 4:
        NSLog(@"LTE");
        break;

    case 5:
        NSLog(@"Wifi");
        break;


    default:
        break;
}
}

关于ios - 如何在不使用 Reachability 类的情况下获取 iPhone 当前的事件网络类型(wifi 或 3G),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779077/

相关文章:

iphone - 将 'stringWithString:' 与文字一起使用是多余的

ios - 添加 subview 会产生布局问题

javascript - jQuery ContextMenu 事件在 IOS 8.2 中不起作用

iOS 指向指针 NSMutableDictionary 的指针

ios - Swift iOS-有wifi连接但没有互联网连接怎么办?

ios - SCNetworkReachability 是否遵守 HTTP 代理设置?

ios - iPhone 上的 UIPopoverPresentationController 不产生弹出窗口

iOS 5 - 从一个 TableViewController 到另一个 TableViewController

objective-c - 如何将事件指示器添加到导航栏?

objective-c - Doxygen/Objective-C : how can I make constants that are declared outside the class definition show up in the class docs?