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网络判断

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