2013-06-30 65 views
0

我遇到無法檢測到Wifi是活動連接的可達性問題。我在我的項目中導入了標準Reachability類,並且在執行的操作中,我檢測是否有Wifi可用來確定要執行的操作。無法檢測到WiFi的可達性

Reachability *reachability = [Reachability reachabilityWithHostName:@"www.google.com"]; 
      NetworkStatus status = [reachability currentReachabilityStatus]; 
      NSLog(@"%i", status); 
      if (status == ReachableViaWiFi) { 
//do wifi action 
} 
else { 
//do non wifi action 
} 

無論如何,它總是執行else操作。狀態的日誌返回'2'。任何想法可能會發生什麼?

更新:經過多次測試後,我確定出於某種原因,WWAN和WIFI在這個應用程序中顛倒過來。當在關閉wifi的實際設備上運行時,它會將連接狀態顯示爲WIFI,並且在連接到WIFI網絡時顯示連接狀態爲WWAN。

+0

您是否添加了SystemConfiguration框架? – rezand

+0

@rezand是的,我做到了。 Reachability的頭文件顯示了以下版本:文件:Reachability.h 摘要:如何使用SystemConfiguration Reachablity API的基本演示。 版本:2.0.4ddg由Andrew W.多諾霍,8月11日,2009年 這是蘋果的可達性2.0類的派生工作取得 */ /* 顯着增加。 以下許可證是帶有OSI推薦個性化設置的新BSD許可證。 user717452

+0

好吧我還沒有使用它,但我的意思是我要去複製你的代碼,看看我得到了什麼結果以及如何解決一個答案,然後.. – rezand

回答

0

我們看了一下編程,並將其縮小到開關盒問題,可達性返回2,但另一個類內的開關盒爲情況2返回「wwan」而不是「wifi」,請檢查此答案或關閉此問題以便其他人不會嘗試回答已解決的問題,謝謝。