Как проверить, включена ли опция wifi

Как проверить, включена ли опция Wi-Fi на iPhone или нет (но, возможно, iPhone не подключен к одной из сетей Wi-Fi).

Ответ 1

Для этого вам нужно импортировать классы достижимости в свой проект.

После этого: -

#import "Reachability.h"

В вашем представлении DidLoad пишите: -

- (void)viewDidLoad {
    Reachability *internetReach = [[Reachability reachabilityForInternetConnection] retain];
    [internetReach startNotifer];
    Reachability *wifiReach = [[Reachability reachabilityForLocalWiFi] retain];
    [wifiReach startNotifer];

    NetworkStatus netStatus1 = [internetReach currentReachabilityStatus];
    NetworkStatus netStatus2 = [wifiReach currentReachabilityStatus];
    if(netStatus1 == NotReachable && netStatus2 == NotReachable)
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"This feature requires an internet connection." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];
        [alertView release];
    }
    else
    {//wifi connection available;
}
}

Ответ 2

Нашел отличную строку кода для этого. Добавьте класс Reachability в свой проект, а затем вы можете сделать это:

BOOL isConnectedProperly = ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == ReachableViaWiFi);

Ответ 3

  First import Reachability files into your project.

 -(void)loginButtonTouched
{  
  bool success = false;
  const char *host_name = [@"www.google.com" 
             cStringUsingEncoding:NSASCIIStringEncoding];

  SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName
                                                (NULL, host_name);
  SCNetworkReachabilityFlags flags;
  success = SCNetworkReachabilityGetFlags(reachability, &flags);
  bool isAvailable = success && (flags & kSCNetworkFlagsReachable) && 
                   !(flags & kSCNetworkFlagsConnectionRequired);

  if (isAvailable) 
  {
      NSLog(@"Host is reachable: %d", flags);
      // Perform Action if Wifi is reachable and Internet Connectivity is present
  }
  else
  {
      NSLog(@"Host is unreachable");
      // Perform Action if Wifi is reachable and Internet Connectivity is not present
  }       
}

Когда вызывается метод loginButtonTouched, мы проверяем, что www.google.com доступен или нет. SCNetworkReachabilityFlags возвращает флаги, которые помогают нам понять статус подключения к Интернету. Если переменная isAvailable возвращает "true", то Host is Досягаемость означает, что Wi-Fi доступен, и есть возможность подключения к Интернету.