首页 文章

如何检测iOS中的wifi网络变化

提问于
浏览
2

我正在研究iOS应用程序,我需要检测网络何时从Wifi连接到另一个Wifi连接或Wifi和3G之间的变化 .

我尝试过使用Reachability库,但它似乎没有检测到Wifi连接之间的变化 . 我可以用什么?

应用程序的目标是App Store,所以我不能使用Apple的私有方法 .

更新:经过一些测试后,我发现使用模拟器进行测试时效果很好 . 我收到通知没有任何问题 . 可能是iphone问题?

提前致谢

2 回答

  • 1

    请参考此链接https://stackoverflow.com/a/19256197/1382157

    另一种方式,

    - (BOOL)isReachable {
    return [self isReachableViaWWAN] || [self isReachableViaWiFi];
    }
    
    - (BOOL)isReachableViaWWAN {// If this return true, means it is connected to 3g
    return self.networkReachabilityStatus == 
    AFNetworkReachabilityStatusReachableViaWWAN;
    }
    
    - (BOOL)isReachableViaWiFi { // If this return true, means it is connected to wifi
    return self.networkReachabilityStatus == 
    AFNetworkReachabilityStatusReachableViaWiFi;
    }
    

    确保正确初始化类并执行

    [self.manager.reachabilityManager startMonitoring];
    
  • 0

    请先看Reachibility

    导入类后写入.h

    Reachability* reachability;
    

    .m级

    [[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil]; 
      reachability = [Reachability reachabilityForInternetConnection]; 
     [reachability startNotifier]; 
     NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus]; 
     if(remoteHostStatus == NotReachable) 
     {
    NSLog(@"no");
     } 
     else if (remoteHostStatus == ReachableViaWiFiNetwork) 
     {
    NSLog(@"wifi"); 
    } 
    else if (remoteHostStatus == ReachableViaCarrierDataNetwork) 
    {
    NSLog(@"cell"); 
    } 
    ..... 
    
     - (void) handleNetworkChange:(NSNotification *)notice 
     {   
    NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];   
    if(remoteHostStatus == NotReachable) 
    {
        NSLog(@"no");
    }   
    else if (remoteHostStatus == ReachableViaWiFiNetwork) 
    {
        NSLog(@"wifi"); 
    }   
    else if (remoteHostStatus == ReachableViaCarrierDataNetwork) 
    {
        NSLog(@"cell"); 
    } 
    }
    

相关问题