6

I am facing some network related issue, need to check the cellular network type, like 2G,3G or 4G data network is selected.

Juri Noga
  • 4,363
  • 7
  • 38
  • 51
Vishnu Dayal
  • 61
  • 1
  • 4
  • 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 Answers1

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