使用 Objective-C 在 iPhone 上禁用 WIFI

Posted

技术标签:

【中文标题】使用 Objective-C 在 iPhone 上禁用 WIFI【英文标题】:Disable WIFI on iPhone using Objective-C 【发布时间】:2013-02-01 18:49:03 【问题描述】:

是否可以在 iPhone 上使用 Objective-C 来禁用所有 WIFI 连接。我们有一个组织只希望通过手机连接发送数据,并且不希望手机能够加入任何 WIFI 网络。我们正在考虑编写一个应用程序,该应用程序可以保持 WIFI 关闭或检测它何时连接到网络然后断开连接。

【问题讨论】:

如果你能做到,我认为这将被视为一个安全漏洞。 @danh 好吧,既然设置应用程序可以做到这一点,那么必须有办法做到这一点。 你的意思是必须有软件访问wifi?当然,但对于苹果来说,不是为了我和你。 (好吧,反正不适合我)。 @danh 显然,不适合你 :) 【参考方案1】:

是否可以在 iPhone 上使用 Objective-C 来禁用所有 WIFI 连接?

Rant note:每个人都看到 OP 在问这是否可能?他没有提到 API 必须是公开的。所以这里是:

Class _SBWifiManager = objc_getClass("SBWiFiManager"); // Steal a class from SpringBoard
[[_SBWifiManager sharedInstance] setWiFiEnabled:NO]; // disable

(reference)

但是,需要注意的是,像这样嘲弄 iOS 内部肯定会导致您的应用被拒绝。但是,如果您不在乎进入AppStore,并且您正在开发越狱或内部或个人应用程序,这应该没问题。

另外,如果您需要这样的功能,我认为您应该考虑重新设计您的应用程序/代码/逻辑。这通常是不必要的。

【讨论】:

【参考方案2】:

您无法从非越狱设备上的应用程序内部关闭 WiFi。

也就是说,您可以使用Reachability Framework 检测设备是通过 WiFi 还是通过蜂窝连接进行连接,并据此自定义行为。

【讨论】:

以上是关于使用 Objective-C 在 iPhone 上禁用 WIFI的主要内容,如果未能解决你的问题,请参考以下文章

iPhone(Objective-c)和Java之间的AES区别

如何使用 Objective-c 为 iPhone/iPad 生成设备的唯一 ID

iPhone 上 SQLite 的最佳 Cocoa/Objective-C 包装器库 [关闭]

Objective-c用iphone 4s插入数据

如何将 int 从 iPhone 发送到 Apple Watch 标签(objective-c)

在 iPhone 的 Objective-C 中在 (commitEditingStyle) 之外调用 (deleteRowsAtIndexPaths)