iOS現在のネットワークタイプ判定(2 G/3 G/4 G/5 G)



IOT方面の仕事をしているため、appとハードウェアデバイスの間のインタラクションは特に多く、自然な携帯電話の現在接続されているssidがどのようなタイプなのかが特に重要であり、ネットワークの発見を判断する前にxcode 12には5 G関連のkeyがないことが発見され、最近Xcode 12にアップグレードされた.1 CTRadioAccessTechnologyNRSAとCTRadioAccessTechnologyNRが多く発見された.現在のネットワーク接続タイプがより完備していると判断した.
NRはNew Radioの略で、新しい無線(5 G)を意味し、NRSAは5 G NRの非独立グループネットワーク(NSA)モードを表す.
ヘッダファイルをインポートする必要があります:
#import 
+ (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;
}

あるネットユーザーによると、このAPIは14.1からスタートし、iOS 14にあるという.0.1はクラッシュを引き起こす可能性があります.手元にはこのシステムの設備がないので、検証に来られません.問題があれば、提出してください.