私の答えは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に組み込まれているのですか、それともサードパーティのものですか。また、NotificationReceivedCallback関数が呼び出されると、アクセス可能で使用可能なオブジェクト(SBWiFiManager)が存在するのか、それともフレームワークへのアクセスを許可するだけのC関数なのでしょうか。 – SteveWight
SpringBoardはフレームワークではありません。それはコアサービスです。 SBWiFiManagerのインスタンスを作成すると、そのインスタンスの他の部分にアクセスできます。 – WrightsCS
美しいハッカー、@ WRightsCS。それらの中にたくさんの光るオブジェクトがあります;-) –