8

我正在尝试几种方法来尝试启用/禁用 Wi-Fi(切换)。以下是我正在尝试的一些事情:

//Enable
WiFiManagerClientEnable(WiFiManagerClientCreate(kCFAllocatorDefault, 0));
//Disable
WiFiManagerClientDisable(WiFiManagerClientCreate(kCFAllocatorDefault, 0));

-和-

//Enable
WiFiManagerClientSetProperty(WiFiManagerClientCreate(kCFAllocatorDefault, 0), @"AllowEnable", kCFBooleanTrue);
//Disable
WiFiManagerClientSetProperty(WiFiManagerClientCreate(kCFAllocatorDefault, 0), @"AllowEnable", kCFBooleanFalse);

尽管我有一个异常函数 (@try{}),但它们中的每一个最终都会使应用程序崩溃。我已经导入了 MobileWiFi.framework 和所有东西,但似乎无法让它工作。这些是我需要调用才能启用/禁用 Wi-Fi 的正确方法吗?

注意:不适用于应用商店 :-)

4

2 回答 2

8

从应用程序

notify_post("com.yourcompany.yourapp.yournotification");

来自 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];
}
于 2010-01-28T07:26:44.080 回答
0

您无法在手机上禁用 WiFi。用户通过设置应用程序负责此操作,此功能在 SDK 中不可用。

-t

于 2010-01-13T00:46:28.713 回答