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

CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyNRNSA         API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macos);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyNR            API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macOS);

这是Apple CoreTelephony框架下用来判断5G的字段,在系统标识上Apple写的是iOS14.0。
后面版本APPLE已更正。

如果你用Xcode12是编译不过的,并且如果你在iOS14.0系统下判断上面的两个字段会造成崩溃,因为这是iOS14.1的系统引入的。

造成崩溃之后解决方案:

    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
    NSString *currentRT = [info currentRadioAccessTechnology];
    if (@available(iOS 14.1, *)) {
        if ([currentRT isEqualToString:CTRadioAccessTechnologyNRNSA] || [currentRT isEqualToString:CTRadioAccessTechnologyNR]) {
            return @"5G";
        }
    }

你可能感兴趣的:(iOS 判断5G网络类型、以及存在的坑)