iOS判断设备WiFi是否打开

最近在做一个打开车类软件,当然打车软件离不开地图了,地图定位基本上都是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硬件开关是否打开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值