iOS判断设备WiFi是否打开

来源:互联网 发布:网易上海房地产数据 编辑:程序博客网 时间:2024/06/05 04:35

最近在做一个打开车类软件,当然打车软件离不开地图了,地图定位基本上都是WiFI+基站,所以把WiFi打开定位会更准备,需要判断wifi开关是否打开。其代码:

- (BOOL) isWiFiEnabled {    NSCountedSet * cset = [NSCountedSet alloc] init];    struct ifaddrs *interfaces;    if( ! getifaddrs(&interfaces) ) {      for( struct ifaddrs *interface = interfaces; interface; interface = interface->ifa_next) {      if ( (interface->ifa_flags & IFF_UP) == IFF_UP ) {        [cset addObject:[NSString stringWithUTF8String:interface->ifa_name]];            }        }    }return [cset countForObject:@"awdl0"] > 1 ? YES : NO;}

根据此作判断,作出相应的UI提示:

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{  BOOL isWIFI = [self isWiFiEnabled];  if (!isWIFI) {//如果WiFi没有打开,作出弹窗提示     static dispatch_once_t onceToken;     dispatch_once(&onceToken, ^{     //自己封装的一个AlertView     [self showWIFTRemendWithTittle:@"打开wifi提高定位准确度,以便司机更快接到您。" Tittle1:@"是否现在开启?" okTittle:@"开启" isHide:NO];            });        }    });

使用AFN的AFNetworkReachabilityManager只是监测网络状态,换句话,就是检测使用的网络是移动网络、WiFi或者是未知网络,而并不能判断WiFi硬件开关的打开。使用上面的方法判断WiFi硬件开关是否打开。

0 0