检测WiFi是否打开

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

我不感兴趣,看看我是否可以到达互联网,因为我使用的是可达性类。 我只需要知道设备上是否启用了wifi。

感谢任何提示。

也许这是你在找什么:

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

没有一个你想要做的框架,但有一个技巧可能工作。 如果列出了可用的接口,那么当wifi打开时会出现一些接口(有些只是在连接到接口时才会出现),您可以按如下所示列出接口:

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

closuresWifi输出:

 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 : 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结构,你也会发现连接networking的BSSID / SSID。

涉及同一主题有几个问题。 你有没有尝试从苹果这个代码 ?

 @property (retain, nonatomic) Reachability* reach; self.reach = [Reachability reachabilityForInternetConnection]; //retain reach [self.reach startNotifier]; NetworkStatus remoteHostStatus = [self.reach currentReachabilityStatus]; if(remoteHostStatus == NotReachable) {NSLog(@"init **** Not Reachable ****");} else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"int **** wifi ****"); } else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"init **** cell ****"); } 

github上有一个项目。 。 导入到您的项目中,您可以像这样检查连接:

 Reachability *reachability = [Reachability reachabilityForInternetConnection]; [reachability startNotifier]; NetworkStatus status = [reachability currentReachabilityStatus]; if(status == NotReachable) { //No internet } else if (status == ReachableViaWiFi) { //WiFi } else if (status == ReachableViaWWAN) { //3G } 

这里的代码。