내 대답을 참조하십시오. here.
//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];
}
빠른 응답 주셔서 감사합니다. SpringBoard 프레임 워크는 ios 4.2 sdk에 내장되어 있습니까? 아니면 제 3 자입니까? 또한 NotificationReceivedCallback 함수가 호출되면 액세스 할 수 있고 사용할 수있는 객체 (SBWiFiManager)가 있거나 프레임 워크에 대한 액세스 만 허용하는 C 함수입니다. – SteveWight
SpringBoard는 프레임 워크가 아닙니다. 핵심 서비스입니다. SBWiFiManager의 인스턴스를 생성하면 해당 인스턴스의 다른 부분에 액세스 할 수 있습니다. – WrightsCS
아름다운 hackery, @WightsCS. 그 (것)들에있는 많은 빛나는 목표 개인적인기구 ;-) –