iOS 5G网络判断

作者: 宥落 | 来源:发表于2020-11-03 11:03 被阅读0次

昨天在判断网络的发现发现xcode12竟然没有5G相关的key,今天升级到Xcode12.1发现多了CTRadioAccessTechnologyNRNSACTRadioAccessTechnologyNR

NRNew Radio的缩写,新无线(5G)的意思,
NRNSA表示5G NR的非独立组网(NSA)模式
具体解释可看5G新无线

网络判断使用了Reachability

+ (NSString *)networkStatus{
    Reachability *reachability   = [Reachability reachabilityWithHostName:@"www.apple.com"];
    NetworkStatus internetStatus = [reachability currentReachabilityStatus];
    NSString *net = @"WIFI";
    switch (internetStatus) {
        case ReachableViaWiFi:
            net = @"WIFI";
            break;
        case ReachableViaWWAN:
            net = [self getNetType];   //判断具体类型
            break;
        case NotReachable:
            net = @"当前无网路连接";
        default:
            break;
    }
    return net;
}

+ (NSString *)getNetType
{
    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
    NSString *currentStatus = info.currentRadioAccessTechnology;
    NSString *currentNet = @"5G";
    
    if ([currentStatus isEqualToString:CTRadioAccessTechnologyGPRS]) {
        currentNet = @"GPRS";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyEdge]) {
        currentNet = @"2.75G EDGE";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyWCDMA]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyHSDPA]){
        currentNet = @"3.5G HSDPA";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyHSUPA]){
        currentNet = @"3.5G HSUPA";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMA1x]){
        currentNet = @"2G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMAEVDORev0]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMAEVDORevA]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMAEVDORevB]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyeHRPD]){
        currentNet = @"HRPD";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyLTE]){
        currentNet = @"4G";
    }else if (@available(iOS 14.0, *)) {
        if ([currentStatus isEqualToString:CTRadioAccessTechnologyNRNSA]){
            currentNet = @"5G NSA";
        }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyNR]){
            currentNet = @"5G";
        }
    }
    return currentNet;
}

相关文章

  • iOS 5G网络判断

    昨天在判断网络的发现发现xcode12竟然没有5G相关的key,今天升级到Xcode12.1发现多了CTRadio...

  • iOS 网络判断

    项目重写 把一些常用的东西记录下来 再此也给各位朋友看看 判断网络状态 在AppDelegate.m中 - (BO...

  • iOS 判断5G网络类型、以及存在的坑

    这是Apple CoreTelephony框架下用来判断5G的字段,在系统标识上Apple写的是iOS14.0。 ...

  • 监测网络变化方法

    *******摘自网络-----未经测试******** iOS 判断网络连接状态的几种方法(一).Reachab...

  • iOS判断网络状态

    问题:在用Reachability和AFNetwork检测网络可达性时,只能检测到设备目前是否连上WiFi,使用数...

  • iOS网络状态判断

    1.使用AFNetworking判断 2.通过Reachability框架Reachability是一个在iOS系...

  • iOS 判断网络有无

  • iOS 判断网络状态

    //创建网络状态监测管理者 AFNetworkReachabilityManager *manager = [AF...

  • iOS判断网络状态

    在很多时候我们都是需要检测当前手机网络状态的,最常见的地方就是视频、音频或下载界面。当处于非Wi-Fi状态时,提示...

  • iPhone iPad iPod iOS 开发中网络状态

    iOS 关于网络类型的判断 说明 在iOS 中随着iPhone X 手机的上市,并且iOS 10系统发布后,现在越...

网友评论

    本文标题:iOS 5G网络判断

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