ios开发网络 运营商型号判断

来源:互联网 发布:围堰稳定性计算软件 编辑:程序博客网 时间:2024/04/26 00:31

1、根据状态栏判断网络的状态

这个方法最简单 可能会有问题

如果觉得不放心的话可以使用苹果提供的网络判断方法

苹果官方气功的实例代码

https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip

下面是偷懒的方法

可判断2G、3G、4G、LET、WIFI

////  网络类型typedef enum {    NETWORK_TYPE_NONE,        //没有联网    NETWORK_TYPE_2G ,//2G    NETWORK_TYPE_3G ,//3G    NETWORK_TYPE_4G ,//4G    NETWORK_TYPE_LET ,//      LTE    NETWORK_TYPE_WIFI,}NETWORK_TYPE;- (NETWORK_TYPE)getNetworkTypeFromStatusBar{    UIApplication *app = [UIApplication sharedApplication];    NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];    NSNumber *dataNetworkItemView = nil;    for (id subview in subviews)    {        if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]])        {            dataNetworkItemView = subview;            break;        }    }    NETWORK_TYPE nettype = NETWORK_TYPE_NONE;    NSNumber * num = [dataNetworkItemView valueForKey:@"dataNetworkType"];    nettype = [num intValue];    return nettype;}

2 、 运营商的判断

下边的代码中的code,如“00”是确定的 如下图

可在这里查询 http://en.wikipedia.org/wiki/Mobile_country_code

如有变化可自行修改

哈哈

具体代码如下

/*关于获取运营商信息,需通过CoreTelephony Framework中的CTTelephonyNetworkInfo和CTCarrier类型。这些都在iOS 4.0后就有了。  import必要的header:  #import <CoreTelephony/CTCarrier.h>  #import <CoreTelephony/CTTelephonyNetworkInfo.h>  何判断当前网络的运营商  *///用来辨别设备所使用网络的运营商- (NSString*)getMobileOperatorsName{    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];    CTCarrier *carrier = [info subscriberCellularProvider];    if (carrier == nil)    {        return @"0";    }    NSString *code = [carrier mobileNetworkCode];     NSLog(@"%@",code);    switch (code.intValue) {        case 00:        case 02:        case 07:            return @"China Mobile 移动";            break;        case 01:        case 06:            return @"China Unicom 联通";            break;        case 03:        case 05:            return @"China Telecom d电信";            break;        case 20:            return @"China Tietong 铁通";            break;        default:            break;    }    return @"not in china";}


上述代码的实例程序

https://github.com/sixTiger/-_-/

0 0
原创粉丝点击