Skip to content

Instantly share code, notes, and snippets.

@Eridana
Last active August 26, 2019 03:40
Show Gist options
  • Save Eridana/4bdd6309d3403f4231f5 to your computer and use it in GitHub Desktop.
Save Eridana/4bdd6309d3403f4231f5 to your computer and use it in GitHub Desktop.
Detect network type (ios)
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import "Reachability.h"
@implementation DeviceInfo
- (NSString *)getNetworkType
{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
switch (status)
{
case ReachableViaWWAN:
{
CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];
NSString *radioAccessTechnology = info.currentRadioAccessTechnology;
NSLog(@"Current Radio Access Technology: %@", radioAccessTechnology);
if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyGPRS]) {
return @"2G";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyEdge]) {
return @"2G";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyWCDMA]) {
return @"3G";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyHSDPA]) {
return @"3G";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyHSUPA]) {
return @"3G";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMA1x]) {
return @"CDMA";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORev0]) {
return @"CDMA";;
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORevA]) {
return @"CDMA";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORevB]) {
return @"CDMA";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyeHRPD]) {
return @"3G";
} else if ([radioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
return @"LTE";
}
break;
}
case ReachableViaWiFi:
{
return @"WiFi";
break;
}
default:
break;
}
return @"undefined";
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment