检查iOS中的蜂窝网络类型

YST*_*Tai 2 networking cellular-network 3g ios

我正在开发iOS应用程序,并希望确定该设备具有哪种类型的蜂窝连接.

我最感兴趣的是我的设备使用的蜂窝网络:2G或3G,或其他.

但是,Reachability.h仅提供wifi或3G检查.

我如何检查2G,3G等?

Nis*_*ant 13

在iOS 7.0+中,我们有CoreTelephony框架,可以为我们提供有关网络类型的必要详细信息.

CTTelephonyNetworkInfo *telephonyInfo = [[CTTelephonyNetworkInfo alloc] init];
    NSString *currentRadio = telephonyInfo.currentRadioAccessTechnology;
    if ([currentRadio isEqualToString:CTRadioAccessTechnologyLTE]) {
        // LTE

    } else if([currentRadio isEqualToString:CTRadioAccessTechnologyEdge]) {
        // EDGE

    } else if([currentRadio isEqualToString:CTRadioAccessTechnologyWCDMA]){
        // 3G

    }
Run Code Online (Sandbox Code Playgroud)


Rap*_*tor 12

2G/3G无法通过Reachability.h任何其他第三方库进行区分,因为iPhone仅向API提供网络类型信息(WWAN,WiFi,无网络).

但是,如果您能够知道2G或3G网络的IP范围,则可以确定iPhone正在使用的网络速度/频率.