【问题标题】:iPhone Wi-Fi Manager SDKiPhone Wi-Fi 管理器 SDK
【发布时间】:2010-01-12 22:58:49
【问题描述】:

我正在尝试几种方法来尝试启用/禁用 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 的正确方法吗?

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

【问题讨论】:

  • 我知道这并不能回答问题,但请查看:stackoverflow.com/questions/2018110/… 您是否知道任何能够在未越狱的 iPhone 上启用或禁用 wifi 的用户模式应用程序?有一种方法可以简单地将您的应用标记为需要 wifi,但这就是我所知道的全部。
  • 这不会启用/禁用 wifi,只是返回某些信息。
  • 您好,我也在尝试类似的东西,您能告诉我更多关于您添加的框架以及如何在 xcode 中执行此操作的信息。提前致谢

标签: iphone sdk wifi toggle


【解决方案1】:

来自应用程序

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];
}

【讨论】:

  • 我试过 [[objc_getClass("SBWiFiManager") sharedInstance] setWiFiEnabled:NO];在一个示例 iOS 4.2.1 应用程序中,但它什么也不做。函数调用是否可能因为它来自我的应用程序而不是在 SpringBoard 下加载的 dylib 而不起作用?
  • 这不适用于应用程序,必须从 .dylib 调用。
  • 好的,谢谢。到目前为止,我还没有开发 .dylib。能否请您指向一个链接,该链接解释了如何为 iphone 开发 dylib。这是跳板的普通 dylib 还是 mobilesubstrate 切换之类的东西?
  • 要明确,SBWiFiManager 是一个只存在于 SpringBoard 中的类。要调用它,必须在 SpringBoard 中作为动态库或框架运行。
  • 谢谢!!!我使用本教程将它与theos一起工作:) brandontreb.com/…
【解决方案2】:

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

-t

【讨论】:

  • 好吧,我不是在为 App Store 编写代码,我的项目设置为使用私有框架。
  • 不知道为什么这被否决了,这似乎是对我的适当回应。
  • 因为 OP 已经声明它不适用于 App Store :-)
猜你喜欢
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多