我在哪里可以findiOS Obj-C代码来扫描并连接到WiFi(私有API)

我需要一个示例obj-c代码扫描并连接到wifi。 私人API是好的,我不会将应用程序发布到appStore。 我发现苹果的应用程序名为“WiFiFoFum”,可以扫描和连接,不幸的是我找不到该应用程序的源代码。 有人知道我在哪里可以find这个代码? 谢谢

在这里find答案: http : //code.google.com/p/iphone-wireless/issues/detail?id = 20

它在我的iPhone 4 v5.1.1上运行得非常好。 我可以扫描并连接到networking。 你可以在这里下载这个项目https://github.com/devinshively/wifiAssociate

这是一个引用:

Apple80211Associate仍然在工作(至less在3.1.2)。 在iPhone OS 2和3之间,框架已经改变了名字,所以你应该绑定你的function如下:

void *airportHandle; int (*Apple80211Open)(void *); int (*Apple80211BindToInterface)(void *, NSString *); int (*Apple80211Close)(void *); int (*Apple80211Info)(void *, NSDictionary**); int (*Apple80211Associate)(void *, NSDictionary*, void *); int (*Apple80211Scan)(void *, NSArray **, void *); libHandle = dlopen("/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager", RTLD_LAZY); Apple80211Open = dlsym(libHandle, "Apple80211Open"); Apple80211BindToInterface = dlsym(libHandle, "Apple80211BindToInterface"); Apple80211Scan = dlsym(libHandle, "Apple80211Scan"); Apple80211Close = dlsym(libHandle, "Apple80211Close"); Apple80211Info = dlsym(libHandle, "Apple80211GetInfoCopy"); Apple80211Associate = dlsym(libHandle, "Apple80211Associate"); 

从v2到v3最显着的变化是SCAN_RSSI_THRESHOLD参数(用于扫描function)。 它使用一个正数,远离本应该是的物理dB
现在它需要信号的dB。 如果你使用它,你可以将它设置为-100:这是一个代码片断(从我的代码挑选樱桃,所以没有经过testing):

 void *airportHandle; NSArray *keys = [NSArray arrayWithObjects:@"SCAN_RSSI_THRESHOLD", @"SSID_STR", nil]; NSArray *objects = [NSArray arrayWithObjects:[NSNumber numberWithInt:-100], ssid, nil]; NSDictionary *params = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; NSArray *found; int openResult = Apple80211Open(&airportHandle); NSLog(@"Openning wifi interface %@", (openResult == 0?@"succeeded":@"failed")); int bindResult = Apple80211BindToInterface(airportHandle, @IF_NAME); int scanResult = Apple80211Scan(airportHandle, &found, params); NSDictionary *network; // get the first network found network = [found objectAtIndex:0]; int associateResult = Apple80211Associate(airportHandle, network,NULL); Apple80211Close(airportHandle); 

Objective-C是编译好的,所以你不能像使用脚本语言那样获取程序的源代码。 你可以检查“WiFiFoFum”是否是开源的,你可以从作者的github下载源代码。 否则,您可以查看/System/Library/PrivateFrameworks目录中的私有框架,并使用class dump-z转储它们的头文件

 $ class-dump-z -H <private framework> 

当然没有尖括号。

编辑:

只是检查,看起来不像是开源的。