I am facing some network related issue, need to check the cellular network type, like 2G,3G or 4G data network is selected.
Asked
Active
Viewed 2,670 times
6
-
I found the answer here which is probably helpful http://stackoverflow.com/questions/25405566/mapping-ios-7-constants-to-2g-3g-4g-lte-etc – HSG Jul 15 '16 at 07:18
1 Answers
10
CoreTelephony.framework
could provide you such details:
Objective-C
CTTelephonyNetworkInfo *telephonyInfo = [[CTTelephonyNetworkInfo alloc] init];
NSString *technologyString = telephonyInfo.currentRadioAccessTechnology;
if ([technologyString isEqualToString:CTRadioAccessTechnologyLTE]) {
// LTE (4G)
} else if([technologyString isEqualToString:CTRadioAccessTechnologyWCDMA]){
// 3G
} else if([technologyString isEqualToString:CTRadioAccessTechnologyEdge]) {
// EDGE (2G)
}
Swift
import CoreTelephony
let telefonyInfo = CTTelephonyNetworkInfo()
if let radioAccessTechnology = telefonyInfo.currentRadioAccessTechnology{
switch radioAccessTechnology{
case CTRadioAccessTechnologyLTE: print("LTE (4G)")
case CTRadioAccessTechnologyWCDMA: print("3G")
case CTRadioAccessTechnologyEdge: print("EDGE (2G)")
default: print("Other")
}
}

Juri Noga
- 4,363
- 7
- 38
- 51