2016-09-26 102 views
2

如何在下圖中獲取Apps Using WLAN & Cellular Setting設置狀態?
我如何檢查狀態(無,WLAN,WLAN &蜂窩)我的應用程序,這樣我就可以顯示一個警示,提醒打開這個開關用戶〜使用WLAN和蜂窩電話設置獲取應用程序

+1

你的意思是你的應用程序的設置,而不是所有的應用程序,更正? –

+0

是的,我想引導用戶打開此開關。有時wifi連接,但這個開關爲我的應用程序已關閉,但用戶不知道這一點,他們可能會責怪我,因爲他們認爲我的應用程序或服務器有問題:( –

+0

有可能沒有辦法做到這一點 - 你可能必須向用戶解釋他們需要做什麼。 –

回答

0

我找到一個解決方案終於〜

:d

ReachabilityNotReachable,有2個的情況下,

  1. 在WiFi沒有連接
  2. Apps Using WLAN & Cellular Setting 熄滅

如果我們能得到當前的WiFi的SSID,我們可以判斷的WiFi連接和網絡開關斷開時〜

#import <SystemConfiguration/CaptiveNetwork.h> 

    BOOL networkSwitchOff = NO; 
    Reachability *reach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus status = [reach currentReachabilityStatus]; 
    if(status==NotReachable){ //Reachability NotReachable 
     NSArray *supportedInterfaces = (__bridge_transfer id)CNCopySupportedInterfaces(); 
     id info = nil; 
     NSString *ssid = nil; 
     for (NSString *networkInfo in supportedInterfaces) { 
      info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)networkInfo); 
      if (info && [info count]) 
       break; 
     } 

     if (info) { 
      NSDictionary *dctySSID = (NSDictionary *)info; 
      //we can't get ssid if wifi is not connected 
      ssid = [dctySSID objectForKey:@"SSID"]; 
     } 
     networkSwitchOff = (ssid!=nil); 
    }