2010-06-10 58 views
1

我在谷歌上看到,這是不可能的,而在OS 2.0上,這是一些未公開的Api來完成,但是然後你的應用程序將被拒絕。有關這方面的消息嗎?如何枚舉範圍內的所有可用Wifi網絡?

+0

請嘗試以下鏈接https://code.google.com/p/iphone-wireless/source/browse/trunk/Stumbler/MSNetworksManager.m – 2013-12-30 07:41:20

回答

2

在互聯網上有2.0以上的解決方案。其中之一似乎如下:

void *libHandle; 
void *airportHandle; 
int (*open)(void *); 
int (*bind)(void *, NSString *); 
int (*close)(void *); 

libHandle = dlopen("/System/Library/Frameworks/Preferences.framework/Preferences", RTLD_LAZY); 
open = dlsym(libHandle, "Apple80211Open"); 
bind = dlsym(libHandle, "Apple80211BindToInterface"); 
close = dlsym(libHandle, "Apple80211Close"); 

open(&airportHandle); 
bind(airportHandle, CFSTR("en0")); 
close(&airportHandle); 

dlclose(libHandle); 

我不確定訪問此框架是否禁用。但是運行它會導致EXC_BAD_ACCESS。因此,無論代碼是錯誤的,框架已經改變,或者以某種方式被鎖定。原諒我的任何明顯的Objective-C假人。自從週四開始,我只能說Objective-C,所以我的Objective-C流暢度可能就像是將一位拉丁語演講者跳傘到一個敵對的特蘭西瓦尼亞山區。