ios 获取当前wifi名称

ios 获取当前wifi名称

ios5之前可以通过读取配置文件获取,ios5以后苹果修改wifi列表文件位置,只有root权限才可以读取.

ios4:/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager

ios5:/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration

 

官方的API没有提供获取扫描所有wifi列表,相近功能的只有CaptiveNetwork,获取当前wifi的名称。

引用头文件<SystemConfiguration/CaptiveNetwork.h>

1
2
3
4
5
6
7
8
9
/*!
  @function CNCopySupportedInterfaces
  @discussion copies a list of all interfaces CaptiveNetworkSupport is monitoring.
  @result An array of CFStringRef- BSD interface names.
      Returns NULL if an error was encountered.
      You MUST release the returned value.
  */
CFArrayRef
CNCopySupportedInterfaces   ( void )              __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_4_1);

通过CNCopySupportedInterfaces获取wifi列表,实际测试中返回数组中只有一个值,即当前连接的wifi。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- ( NSString  *)currentWifiSSID 
{
     NSString  *ssid =  nil ;
     NSArray  *ifs = (__bridge    id )CNCopySupportedInterfaces();
     for  ( NSString  *ifname in ifs) {
         NSDictionary  *info = (__bridge  id )CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifname);
         if  (info[@ "SSIDD" ])
          {
             ssid = info[@ "SSID" ];
         }
     }
     return  ssid;
}
    

你可能感兴趣的:(ios 获取当前wifi名称)