iPhone Wifi 打开还是关闭?

标签 iphone ios wifi

在 iOS 框架中,如何检查用户是否启用了 Wifi radio ?请注意,我对通过 Wifi 的可达性不感兴趣,而是对设备是否被用户关闭感兴趣。谢谢。

最佳答案

基于:http://www.enigmaticape.com/blog/determine-wifi-enabled-ios-one-weird-trick

可以使用基于 C 的 ifaddress 结构确定 Wifi 状态是开/关:

ifaddrs.h 和

网络/if.h

[代码来源:未知。]

- (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;
}

Swift 3 版本(需要桥接头与 #include <ifaddrs.h> ):

func isWifiEnabled() -> Bool {
    var addresses = [String]()

    var ifaddr : UnsafeMutablePointer<ifaddrs>?
    guard getifaddrs(&ifaddr) == 0 else { return false }
    guard let firstAddr = ifaddr else { return false }

    for ptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) {
        addresses.append(String(cString: ptr.pointee.ifa_name))
    }

    freeifaddrs(ifaddr)
    return addresses.contains("awdl0")
}

关于iPhone Wifi 打开还是关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906171/

相关文章:

android - Wi-Fi直连技术

c# - 如何判断电脑是否有wifi适配器?

ios - 我希望从 iPhone 浏览的用户可以选择只上传视频或图像,而不是同时上传

iphone - UIAlertView 要求访问当前位置错误方向

android - 检测手机浏览器显示 "Call"即使分辨率很高

ios - iOS 中的 Ionic Tabs 在选项卡底部显示部分图标

ios - 收到此错误 'text' 的使用不明确

iphone - UIpickerView 在同一个 ScrollView 中填充多个 uitextFields

iOS 指南、Twitter 集成、网络事件的状态栏

tcp - WIFI问题以及如何激活TCP Westwood