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はクラッシュを引き起こす可能性があります.手元にはこのシステムの設備がないので、検証に来られません.問題があれば、提出してください.