2010-06-10 64 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流畅度可能就像是将一位拉丁语演讲者跳伞到一个敌对的特兰西瓦尼亚山区。