ios - 检测wifi是否开启

标签 ios iphone ipad

有没有办法检测 iPhone/iPad 上是否启用了 wifi?

我对是否可以访问 Internet 不感兴趣,因为我使用 Reachability 类。我只需要知道设备上是否已启用 wifi。

感谢任何提示。

最佳答案

也许这就是您正在寻找的:

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

Wayback Machine Archive: https://web.archive.org/web/20161114213529/http://www.enigmaticape.com/blog/determine-wifi-enabled-ios-one-weird-trick

对于您想要做的事情,没有一个框架,但有一个技巧可能会奏效。如果您列出可用的接口(interface),将会有一些接口(interface)在打开 wifi 时才出现(还有一些在您连接时才出现。您可以这样列出接口(interface):

struct ifaddrs *interfaces;
 
if(!getifaddrs(&interfaces)) {
    for( struct ifaddrs *interface = interfaces; interface; interface=interface->ifa_next) {
        BOOL up = (interface->ifa_flags & IFF_UP) == IFF_UP;
        if ( up ) {
            NSLog(
                @"Name : %s, sa_family : %d",
                interface->ifa_name,
                interface->ifa_addr->sa_family
            );
        }
    }
}

关闭 Wifi 时的输出:

Name : lo0, sa_family : 18
Name : lo0, sa_family : 30
Name : lo0, sa_family : 2
Name : lo0, sa_family : 30
Name : pdp_ip0, sa_family : 18
Name : pdp_ip0, sa_family : 2
Name : en0, sa_family : 18
Name : awdl0, sa_family : 18

打开wifi输出:

Name : lo0, sa_family : 18
Name : lo0, sa_family : 30
Name : lo0, sa_family : 2
Name : lo0, sa_family : 30
Name : pdp_ip0, sa_family : 18
Name : pdp_ip0, sa_family : 2
Name : en0, sa_family : 18
Name : awdl0, sa_family : 18
Name : awdl0, sa_family : 30

在 wifi 开启并连接的情况下输出:

Name : lo0, sa_family : 18
Name : lo0, sa_family : 30
Name : lo0, sa_family : 2
Name : lo0, sa_family : 30
Name : pdp_ip0, sa_family : 18
Name : pdp_ip0, sa_family : 2
Name : en0, sa_family : 18
Name : en0, sa_family : 30
Name : en0, sa_family : 2
Name : awdl0, sa_family : 18
Name : awdl0, sa_family : 30

如果您探索 ifaddrs 结构,您还会发现已连接网络的 BSSID/SSID。

关于ios - 检测wifi是否开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29487270/

相关文章:

iphone - 开发、生产和阶段环境的 iOS 推送通知最佳实践

iphone - iOS 4.* 中的方法 isBeingPresented

ios - 嵌入式 youtube 播放列表在 iPad (iOS) 上不起作用

ipad - "Safari on iPad"与 "Desktop Safari"之间的已知差异列表

ios - Xcode 显示在 CoreData 类上使用未声明的类型

ios - Objective-c 中的空格

ios - 在 iMessage 扩展中使用 Firebase 时崩溃

ios - 此方法中的泄漏

iphone - 您会在不进行设备测试的情况下发布您的应用程序吗?

iphone - xcode4 中的新 xib