2015-06-25 79 views
1

我希望能夠檢查用戶是否連接到WiFi,但未連接到網絡。所以基本上我想檢查設備設置頁面上WiFi按鈕的狀態,以檢查按鈕是啓用還是禁用。如何檢查是否啓用了WIFI按鈕(iOS)

目前,我可以檢查如果WiFi連接到網絡或者沒有連接到網絡的執行以下操作:

BOOL hasWiFiNetwork = NO; 
NSArray *interfaces = CFBridgingRelease(CNCopySupportedInterfaces()); 
for (NSString *interface in interfaces) 
{ 
    NSDictionary *networkInfo = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)(interface))); 
    if (networkInfo != NULL) 
    { 
     hasWiFiNetwork = YES; 
     break; 
    } 
    else 
    { 
     hasWiFiNetwork = NO; 
     break; 
    } 
} 
+0

https://github.com/tonymillion/Reachability –

+0

@丹可達少了點同上我的代碼,其實我是想檢查從下面的答案設置 –

+0

頁面以及WIFI的按鈕的狀態,我想就此與你不同意。 –

回答

1

更新

事實證明,這是不可能的,沒有API /框架/ BOOL值可以做到這一點,因爲蘋果沒有帶附加任何形式的檢查,以能力查看開發者是否打開或關閉WiFi。由於很好地說明如下:https://stackoverflow.com/a/12906461/4657588


那麼這個SO職位應該是你想要什麼:https://stackoverflow.com/a/7938778/4657588

Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
[reachability startNotifier]; 

NetworkStatus status = [reachability currentReachabilityStatus]; 

if (status == ReachableViaWiFi) { 
    // WiFi 
} 

else { 
    // Either WiFi is off or we are not connected to a WiFi network. 
} 
+0

我知道這會給你的WiFi的狀態,但是如果你連接到WiFi,但你沒有連接到實際的網絡。像你的家庭網絡那麼它不會給你任何回報。因爲它只會檢查您是否連接到網絡。 –

+0

@ChrisBeckett好吧,如果它沒有提供什麼,那麼你不能假設用戶要麼沒有打開WiFi或沒有連接到網絡。對於你想要執行的任何警報或測試,這應該足夠好。 –

+0

嗯,我測試過了,WiFi已打開,但沒有連接到網絡,我無法顯示消息,因爲我可以檢查iOS上的實際WiFi設置的狀態 - 我嘗試執行此操作的目的的GPS位置 –

1

試試這個代碼,並使用可達類。

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

我喜歡這個答案,可達性對於這種類型的任務很棒。 –

+0

這個答案只給出1或0(真或假)的值,這是如果人連接到WiFi網絡。 –

+0

原來它不可能:http://stackoverflow.com/a/12906461/4657588 –

1

首先,你需要從apple developer site 下載可達性文件,之後添加這些代碼段每有時候俞想要檢查的時間。

-(BOOL)isConnectedTointernet{ 
BOOL status = NO; 
Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
int networkStatus = reachability.currentReachabilityStatus; 
status = (networkStatus != NotReachable)? YES:NO; 
return status;} 
+1

我沒有試圖找出用戶是否連接到網絡,或沒有連接。我只是試圖找到iPad上實際WiFi的狀態。所以,如果啓用了WiFi按鈕,則會發送消息,如果它被禁用,則會發送消息。 –

+0

原來它不可能:http://stackoverflow.com/a/12906461/4657588 –

相關問題