xuesn 发表于 2015-10-1 09:13:48

【IOS】获取wifi名称 (即SSID)

iOS 获取wifi ssid 名称
  SSID全称Service Set IDentifier, 即Wifi网络的公开名称.在IOS 4.1以上版本提供了公开的方法来获取该信息.
  
  首先添加框架:SystemConfiguration.framework




1 #import <SystemConfiguration/CaptiveNetwork.h>
2- (id)fetchSSIDInfo
3 {
4   NSArray *ifs = (id)CNCopySupportedInterfaces();
5   NSLog(@"%s: Supported interfaces: %@", __func__, ifs);
6   id info = nil;
7   for (NSString *ifnam in ifs)
8   {
9         info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
10         NSLog(@"%s: %@ => %@", __func__, ifnam, info);
11         if (info && )
12         {
13            break;
14         }
15         ;
16   }
17    ;
18    return ;
19 }
20
21
22 - (NSString *)currentWifiSSID {
23   // Does not work on the simulator.
24   NSString *ssid = nil;
25   NSArray *ifs = (id)CNCopySupportedInterfaces();
26   NSLog(@"ifs:%@",ifs);
27   for (NSString *ifnam in ifs) {
28         NSDictionary *info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
29         NSLog(@"dici:%@",);
30         if (info[@"SSIDD"]) {
31             ssid = info[@"SSID"];
32            
33         }
34   }
35   return ssid;
36 }
37
38 - (void)viewDidLoad
39 {
40   ;
41   
42   tempLabel=[initWithFrame:CGRectMake(50, 40, 200, 40)];
43   tempLabel.textAlignment=NSTextAlignmentCenter;
44   ;
45   NSDictionary *ifs = ;
46   NSString *ssid = [ lowercaseString];
47   tempLabel.text=ssid;
48
49 }
  
  log 信息 :



[*]2013-06-05 21:39:14.357 wifiNameDemo dici:{
[*]    BSSID = "f4:ec:38:40:cc:e8";
[*]    SSID = "Nice_Apple";
[*]    SSIDDATA = <4e696365 5f417070 6c65>;
[*]}
[*]2013-06-05 21:39:14.360 wifiNameDemo Nice_Apple
  
ARC 版本:





1 - (id)fetchSSIDInfo {
2   NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
3   NSLog(@"Supported interfaces: %@", ifs);
4   id info = nil;
5   for (NSString *ifnam in ifs)
6   {
7         info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
8         NSLog(@"%@ => %@", ifnam, info);
9         if (info && )
10         {
11             break;
12         }
13    }
14    return info;
15 }
  
  效果如下:



iOS 取得WIFI的热点名称和MAC地址



1 #import <SystemConfiguration/CaptiveNetwork.h>
2
3 NSString *ssid = @"Not Found";
4
5 NSString *macIp = @"Not Found";
6 CFArrayRef myArray = CNCopySupportedInterfaces();
7 if (myArray != nil) {
8   CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
9   if (myDict != nil) {
10         NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);
11         ssid = ;
12         macIp = ;
13   }
14 }
15 UIAlertView *av = [ initWithTitle:ssid
16                                              message:macIp
17                                             delegate:nil
18                                    cancelButtonTitle:nil
19                                    otherButtonTitles:@"OK", nil];
20 ;
  
页: [1]
查看完整版本: 【IOS】获取wifi名称 (即SSID)