【问题标题】:Is there a way to toggle wifi on and off programmatically in iOS?有没有办法在iOS中以编程方式打开和关闭wifi?
【发布时间】:2012-04-19 15:42:23
【问题描述】:

我使用此链接上的代码为蓝牙完成了它: Is there a way to toggle bluetooth and/or wifi on and off programmatically in iOS?

但我不知道如何为 Wifi 做同样的事情。如何打开/关闭 Wifi?有可能吗?

【问题讨论】:

    标签: iphone ios wifi


    【解决方案1】:

    绝对不可能使用任何公共(记录在案的)API 来关闭或打开 WiFi。

    即使在非越狱设备上使用私有函数也可能实现这一点。

    参见Apple80211Functions - 有一个名为Apple80211SetPower 的私有函数,它非常适合这项工作。但使用它也会干扰自动 TX 电源设置 - 可能导致电池使用量增加或 WiFi 链接质量下降(或两者兼而有之)。

    当然,您的应用肯定不会通过 App Store 的批准

    下载Stumbler源码可以看到Apple80211的功能如何使用。

    Stumbler SVN 结帐由:

    svn checkout http://iphone-wireless.googlecode.com/svn/trunk/ iphone-wireless-read-only
    

    还有两个其他项目可以帮助您开始使用低级 WiFi 功能:

    web-login-helper

    BECHA

    【讨论】:

    • 不错的一个。谢谢。我想知道苹果是否曾想过将其公开。但我认为不是。让我们拭目以待。
    • 你能创建一个特定的样本吗?我真的不明白是否使用该来源我只能控制 Wifi 开/关...
    • 这个函数没有文档记录,所以你需要做一些实验。我只是说这个功能可能是这项工作的最佳人选。
    【解决方案2】:

    我很确定 SDK 不允许使用公共框架打开或关闭 Wifi,抱歉。您可以使用私有框架,但我怀疑您的应用程序无法通过 Apple。

    【讨论】:

    • 是的。我很确定非越狱设备不允许这样做。仅仅是因为苹果没有通过 SDK 将设备控制权交给开发人员。 Apple 是硬件及其设置的唯一控制者。
    • @nembleton/ @Ste:上面那个人 (user1071887) 提出了这个与 WiFi 相关的问题,他说他已经以编程方式打开/关闭蓝牙。而且您在回答中提到这是不可能的,Apple 不会将硬件控制权交给开发人员。你们能不能请大家多解释一下并解释一下。基本上我想知道蓝牙是否不包含任何硬件部分或什么?谢谢
    • 是的,你是对的。但我认为苹果认为蓝牙是他们试图保留的关键用户体验的“非主要”部分。不要误解我之前的说法,但 Apple 将大部分控制权保留在设备上。
    • 我询问了如何使用私有函数来做到这一点。我知道它不是公开的,而且该应用程序是供我使用的,而不是供应用程序商店使用的......
    【解决方案3】:

    在 iOs 2.x 中,您可以使用一些私有 API 来执行此操作,但它在 iOS4.x、5.x 中不起作用。希望Apple能公开管理Wifi的API,现在只供Setting apple app使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      相关资源
      最近更新 更多