iOS怎么判断设备的WiFi开关是否打开?

由于客户的某些SB要求,偏要监控设备的WiFi的开关是否打开,我Google了大半圈,硬是没有找到,难道只能监控网络的状态,不能监控WiFi开关是否打开吗?求解答……

阅读 6.5k
1 个回答

看看这个,或许有帮助

- (BOOL) isWiFiEnabled {
    
    NSCountedSet * cset = [NSCountedSet new];
    
    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;
}

SystemConfiguration.framework可以实现相关功能。
记得添加三个相关头文件

#import <ifaddrs.h>
#import <net/if.h>
#import <SystemConfiguration/CaptiveNetwork.h>
推荐问题