Détecter si le wifi est activé

Existe-t-il un moyen de détecter si le wifi est activé sur un iPhone / iPad?

Je ne suis pas intéressé de voir si je peux accéder à Internet, pour cela j'utilise la class Reachability. J'ai juste besoin de savoir si le wifi a été activé sur l'appareil.

Reconnaissant pour tous les conseils.

Peut-être que c'est ce que vous cherchez:

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

Il n'y a pas de cadre pour ce que vous voulez faire, mais il y a un truc qui pourrait marcher. Si vous listz les interfaces disponibles, il y aura certaines interfaces qui apparaissent juste quand le wifi est allumé (et d'autres apparaissent juste quand vous êtes connecté à un.) Vous pouvez listr les interfaces comme ceci:

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

Sortie avec Wifi désactivé:

 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 

Sortie avec wifi sur:

 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 

Sortie avec wifi activé et connecté:

 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 

Si vous explorez la structure ifaddrs, vous findez également le BSSID / SSID du réseau connecté.

Il y a plusieurs questions concernant le même sujet. Avez-vous essayé ce code d'Apple ?

 @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 ****"); } 

Il y a un projet sur github . . Importé dans votre projet, vous pouvez vérifier la connectivité comme ceci:

 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 } 

Le code d'ici.