最近在做一個翻開車類軟件,當然打車軟件離不開地圖了,地圖定位根本上都是WiFI+基站,所以把WiFi翻開定位會更預備,需求判別wifi開關能否翻開。其代碼:
- (BOOL) isWiFiEnabled {
NSCountedSet * cset = [NSCountedSet alloc] init];
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;
}
依據此作判別,作出相應的UI提示:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
BOOL isWIFI = [self isWiFiEnabled];
if (!isWIFI) {//假如WiFi沒有翻開,作出彈窗提示
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//自己封裝的一個AlertView
[self showWIFTRemendWithTittle:@"翻開wifi進步定位精確度,以便司機更快接到您。" Tittle1:@"能否如今開啟?" okTittle:@"開啟" isHide:NO];
});
}
});
運用AFN的A.networkReachabilityManager只是監測網絡形態,換句話,就是檢測運用的網絡是挪動網絡、WiFi或許是未知網絡,而並不能判別WiFi硬件開關的翻開。運用下面的辦法判別WiFi硬件開關能否翻開。
【iOS判別設備WiFi能否翻開】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!