以编程方式在iOS中切换AirPlane模式

时间:2013-12-09 11:26:02

标签: ios iphone frameworks iphone-privateapi airplane

我想以编程方式在iOS中开/关飞机模式。谷歌搜索后,我得到了以下一些链接,并跟着他们,

Reachability airplane mode (3G) vs. Wifi

Using Private Framework: Importing RadioPreferences.h

Detect if iPhone is in Airplane mode?

以上所有链接都告诉我使用AppSupport.framework并使用RadiosPreferences.h。 这给了我关于airPlane模式是打开还是关闭的状态,但它并没有让我改变飞机模式。

然后我看到,这个链接How to turn on/off airplane mode in IOS 5.1 using private API为我提供了切换飞机模式的方法,但它正在使用权利,这只适用于越狱设备。有没有办法,以编程方式设置飞行模式(可以使用私有API,但不能使用权利)。

2 个答案:

答案 0 :(得分:4)

每个App Store应用都使用权利沙箱。

如果您想在App Store中分发您的应用,那么您想要实现的目标根本无法实现。您的应用程序根本无法获得足够的权限来实现远程类似的任您无法设置更改系统行为的全局设置。 Apple永远不会允许这样做。

在最好的情况下,您可以通过可访问性来监控网络连接的状态,但这几乎就是这样。使用私有API =直接应用拒绝。

答案 1 :(得分:-3)

如果您不关心AppStore提交,并且您的设备是越狱(至于iOS 7.0.4是可越狱的),那么您可以按照确切的顺序执行这些步骤,以编程方式打开或关闭飞行模式。我还附上了一个示例项目,以使事情变得更容易。

  1. 下载(https://iosopendev.googlecode.com/files/iOSOpenDev-1.6-2.pkg)并安装。这将安装必要的工具,以便在Apple的应用程序所在的位置直接安装应用程序。这是必需的,以便您拥有适当的访问权限。

  2. 使用Cydia在您的设备中安装OpenSSH。然后按照本教程:( http://www.priyaontech.com/2012/01/ssh-into-your-jailbroken-idevice-without-a-password/)启用无密码访问(使用SSH密钥)。

  3. 下载我从这里创建的示例项目:(https://www.dropbox.com/s/c0i76vmtfckvsut/ToggleAirplane.zip)此项目使用与Apple的SpringBoard应用程序(控制主屏幕的应用程序)相同的权利。因此,您可以访问每个设置。您只需要知道如何以编程方式调用它。

  4. 在构建设置中,转到“用户定义”部分,然后将关键iOSOpenDevDevice的值编辑为设备的IP地址。

  5. 现在最棒的部分。按Command + Shift + I.这将安装并重新启动您的设备。

  6. 但是您可能看不到该应用。要查看它,请从Cydia下载Respring应用程序。当您启动它时,它将重新启动设备。您应该可以在主屏幕上看到应用程序“ToggleAirplane”。

  7. 注意:您无法将其从主屏幕中删除,就像您无法使用Apple的应用程序一样。要删除它,您需要转到Cydia->包。精美的应用程序和卸载。