不正确的响应 - 可达性WWAN(Incorrect Response - Reachability

2019-10-18 08:40发布

在检查一台iPad 3的WiFi +蜂窝的可达性(网络可用性),我跑进对面,在下文提到的情况发生了一个奇怪的问题。

  • 要检查网络可用性我用苹果的示例代码可达性 。
  • 下面的代码执行,以检查WiFi或WWAN的可用性。

`

- (BOOL)networkCheck
 {
    Reachability *wifiReach = [Reachability reachabilityForInternetConnection];
    NetworkStatus netStatus = [wifiReach currentReachabilityStatus];

    switch (netStatus)
    {
        case NotReachable:
        {
            NSLog(@"%@",@"NETWORKCHECK: Not Connected");    
            return false;
            break;
        }
        case ReachableViaWiFi:
        {
            NSLog(@"%@",@"NETWORKCHECK: Connected Via WiFi");       
            return true;
            break;
        } 
        case ReachableViaWWAN:
        {
            NSLog(@"%@",@"NETWORKCHECK: Connected Via WWAN");
            return true;
            break;
        }
    }
    return false;
 }

`

  • 在一个场景中,当有在iPad上没有SIM&也没有WiFi连接,上述方法执行ReachableViaWWAN情况下,这似乎是完全不正确的 ,因为没有SIM卡或可用任何其他WWAN网络。

为了克服这个问题的解决方法(或者我应该说一个黑客)建议和实施,详情如下:发送请求到可靠的主机及检查其响应。

case ReachableViaWWAN:
    {
        NSLog(@"%@",@"NETWORKCHECK: Connected Via WWAN");
        NSData *responseData = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"www.google.com"]] returningResponse:nil error:nil];
        if (responseData != nil)
        {
            return true;
            break;
        }
        else
        {
            return false;
            break;
        }

    }

我有一对夫妇的查询:

  1. 这听起来可能有些另类,但它是有点问题的硬件或iOS它的ReachableViaWWAN即使在没有SIM卡出现在设备?
  2. 有没有更好的解决办法(除了上面提到的解决方法)的问题?

Answer 1:

我不知道这是否是在你的代码中的错误,但你可以尝试使用此检查连接。 从这个问题 。

并检查连接,你可以创建一个这样的方法:

 -(BOOL)connected
  {
     Reachability *reachability = [Reachability reachabilityForInternetConnection];
     NetworkStatus networkStatus = [reachability currentReachabilityStatus];
     return !(networkStatus == NotReachable);
 }

何地,你只想检查连接

if (![self connected]) {
//THERE IS NO WWAN OR WIFI connection
}else{
// connected. 
}

这对我来说可以。



文章来源: Incorrect Response - Reachability For WWAN