Iphone 如何访问WiFiManager框架iOS?

Iphone 如何访问WiFiManager框架iOS?,iphone,objective-c,ios4,Iphone,Objective C,Ios4,我试图访问WiFiManager框架(以前的apple80211),但找不到正确的信息。我知道苹果不允许在app store上的应用程序使用私有框架,但我写这个应用程序是为了个人使用,所以这对我来说并不重要。我需要知道的是,对于直接上传到手机上的应用程序,我是否仍然可以访问WiFiManager框架,是否有关于如何访问的任何信息?提前感谢您的帮助。查看我的答案 //在您的应用程序中 通知帖子(“com.yourcompany.yourapp.yournotification”); //在你的动态

我试图访问WiFiManager框架(以前的apple80211),但找不到正确的信息。我知道苹果不允许在app store上的应用程序使用私有框架,但我写这个应用程序是为了个人使用,所以这对我来说并不重要。我需要知道的是,对于直接上传到手机上的应用程序,我是否仍然可以访问WiFiManager框架,是否有关于如何访问的任何信息?提前感谢您的帮助。

查看我的答案

//在您的应用程序中
通知帖子(“com.yourcompany.yourapp.yournotification”);
//在你的动态库中
#进口
钩子(跳板,应用程序IDFinishLaunching$,无效,id应用程序){
//通过达尔文通知中心监听事件
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),NULL,
&NotificationReceivedCallback,CFSTR(“com.yourcompany.yourapp.yournotification”),NULL,
CFNotificationSusperationBehavior事件);
}
//这就是魔法发生的地方
静态无效通知ReceivedCallback(CFNotificationCenterRef center,
void*观察者,CFStringRef名称,
const void*对象,CFDictionaryRef
用户信息)
{ 
[[objc_getClass(“SBWiFiManager”)sharedInstance]setWiFiEnabled:否];
}

感谢您的快速响应。是ios 4.2 sdk内置的SpringBoard框架,还是第三方的。此外,调用NotificationReceivedCallback函数后,是否存在可访问且可使用的对象(SBWiFiManager),或者是仅允许访问框架的C函数。SpringBoard不是框架。这是一项核心服务。当您创建SBWiFiManager实例时,您可以访问它的其他部分。漂亮的黑客,@WrightsCS。在私有框架中有很多闪亮的对象;-)谢谢你的帮助。我应该创建自己的动态库文件还是将导入和挂钩添加到另一个动态库中?如果您正在创建MobileSubstrate扩展名(Cydia),那么您可以创建动态库。但这几乎是相同的概念。
//IN YOUR APP
notify_post("com.yourcompany.yourapp.yournotification");

//IN YOUR DYLIB

#import <SpringBoard/SBWiFiManager.h>

HOOK(SpringBoard, applicationDidFinishLaunching$, void, id app) {
    //Listen for events via DARWIN NOTIFICATION CENTER
    CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL,
     &NotificationReceivedCallback, CFSTR("com.yourcompany.yourapp.yournotification"), NULL, 
      CFNotificationSuspensionBehaviorCoalesce);
}

//THIS IS WHERE THE MAGIC HAPPENS
static void NotificationReceivedCallback(CFNotificationCenterRef center, 
                                            void *observer, CFStringRef name, 
                                            const void *object, CFDictionaryRef 
                                            userInfo) 
{ 
    [[objc_getClass("SBWiFiManager") sharedInstance] setWiFiEnabled:NO];
}