2016-09-26 109 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); 
    }