判斷iPhone的WiFi是否打開的兩種方法
判斷WiFi是否連接可以使用Reachability進(jìn)行判斷,那么WiFi是否打開應(yīng)該怎么判斷呢?
下面是兩種完全基于不同思路的方法:
方法一:
使用SystemConfiguration.framework 庫進(jìn)行判斷
#import <ifaddrs.h> #import <net/if.h> #import <SystemConfiguration/CaptiveNetwork.h> - (BOOL) isWiFiEnabled { NSCountedSet * cset = [NSCountedSet new]; struct ifaddrs *interfaces; if( ! getifaddrs(&interfaces) ) { for( struct ifaddrs *interface = interfaces; interface; interface = interface->ifa_next) { if ( (interface->ifa_flags & IFF_UP) == IFF_UP ) { [cset addObject:[NSString stringWithUTF8String:interface->ifa_name]]; } } } return [cset countForObject:@"awdl0"] > 1 ? YES : NO; }
方法二:
使用KVC對(duì)StatusBar進(jìn)行判斷
- (BOOL)isWiFiConnected { UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews]; //獲得到網(wǎng)絡(luò)返回碼 for (id child in children) { if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) { int netType = [[child valueForKeyPath:@"dataNetworkType"] intValue]; NSLog(@"type:%@",@(netType)); if (netType == 1) { NSLog(@"2G"); return NO; } else if (netType == 2) { NSLog(@"3G"); return NO; } else if (netType == 3) { NSLog(@"4G"); return NO; } else if (netType == 5){ NSLog(@"Wifi"); return YES; } // 1,2,3,5 分別對(duì)應(yīng)的網(wǎng)絡(luò)狀態(tài)是2G、3G、4G及WIFI。(需要判斷當(dāng)前網(wǎng)絡(luò)類型寫個(gè)switch 判斷就OK) } } NSLog(@"not open network or no net work"); return NO; }
實(shí)際上,方法二也是對(duì)網(wǎng)絡(luò)連接狀態(tài)的判斷,不能判斷WiFi是否打開。不同的網(wǎng)絡(luò)連接狀態(tài)下,StatusBar展示不同的圖標(biāo),當(dāng)WiFi打開而沒連接時(shí),方法二得到的結(jié)果依然會(huì)是NO。
以上所述是小編給大家介紹的判斷iPhone的WiFi是否打開的兩種方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS Swift利用UICollectionView實(shí)現(xiàn)無限輪播功能(原理)詳解
無線輪播圖的實(shí)現(xiàn)方式有很多,下面這篇文章主要給大家介紹了關(guān)于iOS Swift利用UICollectionView實(shí)現(xiàn)無限輪播功能(原理)的相關(guān)資料,需要的朋友可以參考下2018-09-09iOS中解決Xcode9的Log日志無法輸出中文的問題小結(jié)
這篇文章主要介紹了iOS中解決Xcode9的Log日志無法輸出中文的問題小結(jié),需要的朋友可以參考下2017-11-11安裝win10+黑蘋果雙系統(tǒng)零基礎(chǔ)教程(圖文)
這篇文章主要介紹了安裝win10+黑蘋果雙系統(tǒng)零基礎(chǔ)教程(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-01-01iOS用UITextField切換明文/密文顯示時(shí)末尾空白的問題解決
最近在工作中遇到一個(gè)問題,利用UITextField切換明文/密文顯示時(shí)發(fā)現(xiàn)字符串后面會(huì)出現(xiàn)一段空白,所以下面這篇文章主要給大家介紹了iOS用UITextField切換明文/密文顯示時(shí)末尾空白問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05