由于蘋果是閉源的,所以我們不能像安卓那樣對(duì)一些東西進(jìn)行操作,比如WIFI,通過使用一些私有的API并在越獄的iPhone上面或許你能夠?qū)崿F(xiàn)那些功能,但是這樣做有很大的局限性:1.私有API蘋果審核不會(huì)讓你通過,2.現(xiàn)在很多iPhone用戶都不再選擇越獄,但是如果我們僅僅想要知道自己現(xiàn)在所連接的WiFi叫啥名我們還是可以通過蘋果提供的共有API去實(shí)現(xiàn)的。這就要用到SystemConfiguration.framework這個(gè)框架了。廢話不多說,直接上代碼:
//導(dǎo)入框架頭文件?
#import<SystemConfiguration/CaptiveNetwork>
@interfaceViewController()
//定義一個(gè)label用于顯示當(dāng)前所連WiFi名稱
@property(weak, nonatomic)IBOutletUILabel*l1;
@property(weak, nonatomic)IBOutletUILabel*l2;
@end
@implementationViewController
- (void)viewDidLoad {
[superviewDidLoad];
idinfo =nil;
NSArray*ifs = (__bridge_transferid)CNCopySupportedInterfaces();
for(NSString*ifnaminifs) {
info = (__bridge_transferid)CNCopyCurrentNetworkInfo((__bridgeCFStringRef)ifnam);
NSString*str = info[@"SSID"];
NSString*str2 = info[@"BSSID"];
NSString*str3 = [[NSStringalloc]initWithData:info[@"SSIDDATA"]encoding:NSUTF8StringEncoding];
_l1.text = str;
_l2.text = str2;
}
}
@end
跳轉(zhuǎn)wifi界面
NSString * urlString = @"App-Prefs:root=WIFI";
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {
if ([[[UIDevice currentDevice]systemVersion] floatValue]>=10) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString] options:@{} completionHandler:nil];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
}