1

我在谷歌上读到这是不可能的,而在 OS 2.0 上,这是一些未记录的 Api 来实现这一点,但是你的应用程序将被拒绝....

我们几乎在 OS 4.0 上……有关于这方面的消息吗?

4

1 回答 1

2

在 Internet 上可以找到 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 流利程度可能就像把一个拉丁语的人跳伞到一个充满敌意的特兰西瓦尼亚山区。

于 2011-04-08T11:04:41.253 回答