WiFi连接可用时通知

WiFi连接可用时通知

问题描述:

当设备具有WiFi连接可用或设备通过WiFi连接时,我需要通知。我只需要在WiFi可用时做一些事情。WiFi连接可用时通知

我用下面的代码可达性:

BOOL status=true; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil]; 

internetReachability = [Reachability reachabilityForInternetConnection]; 
[internetReachability startNotifier]; 

NetworkStatus internetNetworkStatus = [internetReachability currentReachabilityStatus]; 
status = (internetNetworkStatus == ReachableViaWiFi); 

checkNetworkStatus:方法没有正确和准确地调用。所以,请指导我解决这个问题。

任何帮助解决问题必须赞赏。

我希望它能帮助你解决问题。

-(void) rechabilityInit 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(reachabilityChanged:) 
               name:kReachabilityChangedNotification 
               object:nil]; 



self.internetConnectionReach = [Reachability reachabilityForInternetConnection]; 

self.internetConnectionReach.reachableBlock = ^(Reachability * reachability) 
{ 

    NSLog(@"%@", reachability.currentReachabilityString); 

    [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 

     // Do stuff here when WIFI is availble 

    }]; 
}; 

self.internetConnectionReach.unreachableBlock = ^(Reachability * reachability) 
{ 
    NSLog(@"%@", reachability.currentReachabilityString); 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
     // do some stuff here when WIFI not present 
    }]; 
};  
[self.internetConnectionReach startNotifier];   

}

-(void)reachabilityChanged:(NSNotification*)note 
{ 

    Reachability * reach = [note object]; 
    if (reach == self.localWiFiReach) 
    { 
    if([reach isReachable]) 
    { 
    NSString * temp = [NSString stringWithFormat:@"LocalWIFI Notification Says Reachable(%@)", reach.currentReachabilityString]; 
    NSLog(@"%@", temp); 
     } 
    else 
    { 
    NSString * temp = [NSString stringWithFormat:@"LocalWIFI Notification Says Unreachable(%@)", reach.currentReachabilityString]; 
    NSLog(@"%@", temp); 
    } 
    } 

} 
+0

感谢。让我来实施它,并会在这里发表评论。 –

+0

你的问题解决了吗? –

下面的方式是帮助我解决我的问题:

// Use below to any method 
// check for internet connection 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil]; 

internetReachability = [Reachability reachabilityForInternetConnection]; 
[internetReachability startNotifier]; 


-(void) checkNetworkStatus:(NSNotification *)notice { 
    // called after network status changes 
    NetworkStatus internetStatus = [internetReachability currentReachabilityStatus]; 

    switch (internetStatus) { 
     case NotReachable: { 
      NSLog(@"The internet is down."); 
      break; 
     } 

     case ReachableViaWiFi: { 
      NSLog(@"The internet is working via WIFI."); 
      //Remove Observer 
      [[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil]; 
      [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil]; 

      //Write your code     
      break; 
     } 

     case ReachableViaWWAN: { 
      NSLog(@"The internet is working via WWAN."); 
      break; 
     } 
    } 
}