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";
}
}