由于一直在做IOT方面的作業,所以app跟硬體設備之間的互動就做的特別多,自然而然的手機當前連接的ssid是什么型別的就尤為重要,之前在判斷網路的發現發現xcode12竟然沒有5G相關的key,最近升級到Xcode12.1發現多了CTRadioAccessTechnologyNRNSA和CTRadioAccessTechnologyNR,從而是的判斷當前網路連接型別變得更完善,
NR是New Radio的縮寫,新無線(5G)的意思,
NRNSA表示5G NR的非獨立組網(NSA)模式,
需要匯入頭檔案:
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
+ (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起步,而在iOS14.0.1會導致崩潰,由于手頭目前沒有這個系統的設備,所以不能來驗證了,如果有問題,歡迎提出,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241957.html
標籤:其他
上一篇:IDC如何更好地迎接5G發展年
