以编程方式在 iOS 中切换 AirPlane 模式
Posted
技术标签:
【中文标题】以编程方式在 iOS 中切换 AirPlane 模式【英文标题】:Toggling AirPlane mode in iOS Programmatically 【发布时间】:2013-12-09 11:26:02 【问题描述】:我想以编程方式在 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,但不能使用权利)。
【问题讨论】:
我认为您不太可能以编程方式更改模式,因为在没有用户交互的情况下更改此模式是一种非常“非 Apple”的工作方式,因为用户可能想知道为什么他的互联网或接听电话的功能突然停止工作。 我只想制作一个应用程序,让我的设备在一段时间内自动进入飞行模式,例如。当我进入办公室/工作场所时,它应该自动开启飞行模式,当我离开办公室时它会关闭...... 我认为你能做到的最好的事情是显示一个通知,引导用户(例如通过按下按钮)到飞机设置,然后用户会仍然需要手动更改设置。显然你可以使用 Siri 打开飞机设置屏幕:forums.imore.com/siri/… yaa,这是最后一种方式,如果我没有得到这个答案... 查看此答案***.com/questions/793924/… 【参考方案1】:每个 App Store 应用都带有权利沙盒。
如果您想在 App Store 中分发您的应用程序,那么您想要实现的目标根本不可能。您的应用程序根本无法获得足够的权限来实现远程类似的任何事情。您无法设置更改系统行为的全局设置。 Apple 绝不允许这样做。
您最多可以通过可达性来监控网络连接的状态,但仅此而已。使用私有 API = 直接应用拒绝。
【讨论】:
正如我提到的我想使用私有API,这显然意味着我不想把它放在App Store上,所以没有拒绝的意义。 我看过这个视频,那里的一个人说该应用程序可以打开/关闭飞行模式,他正在使用 IOS:youtube.com/watch?v=ZcjtEKNP05c。这是假的还是什么?【参考方案2】:如果您不关心 AppStore 提交,并且您的设备已越狱(最高 iOS 7.0.4 可越狱),那么您可以按照这些步骤以编程方式打开或关闭飞行模式。我还附上了一个示例项目以使事情变得更容易。
下载 (https://iosopendev.googlecode.com/files/iOSOpenDev-1.6-2.pkg) 并安装。这将安装必要的工具,以便将应用程序直接安装在 Apple 应用程序所在的位置。这是必需的,以便您拥有适当的访问权限。
使用 Cydia 在您的设备中安装 OpenSSH。然后按照本教程:(http://www.priyaontech.com/2012/01/ssh-into-your-jailbroken-idevice-without-a-password/) 启用无密码访问(使用 SSH 密钥)。
从这里下载我创建的示例项目:(https://www.dropbox.com/s/c0i76vmtfckvsut/ToggleAirplane.zip) 该项目使用与 Apple 的 SpringBoard 应用程序(控制主屏幕的应用程序)相同的权利。因此,您将可以访问所有设置。您只需要知道如何以编程方式调用它。
在构建设置中,转到“用户定义”部分并将密钥 iOSOpenDevDevice 的值编辑为您设备的 IP 地址。
现在最棒的部分。按 Command + Shift + I。这将安装并重新启动您的设备。
但是您可能看不到该应用程序。要查看它,请从 Cydia 下载 Respring 应用程序。当您启动它时,它将重新启动设备。您应该能够在主屏幕上看到应用程序“ToggleAirplane”。
注意:您将无法从主屏幕删除它,就像您无法使用 Apple 的应用程序一样。要删除它,您需要转到 Cydia->Packages。完善应用并卸载。
【讨论】:
我不想使用动态库,我已经知道这种方式并且已经完成了,但是正如我在我的问题(最后一行)中明确提到的那样,我不想使用越狱解决方案,我可以使用私有框架 我知道这是一个旧答案,但我想知道您是否可以重新上传 ToggleAirplane 示例项目。谢谢! 如果未在您的帖子中提供答案的关键要素,请不要在这里回答问题。您提供了一个解决方案,链接到此链接中不再存在的 Dropbox 项目。这使得这个答案毫无用处。以上是关于以编程方式在 iOS 中切换 AirPlane 模式的主要内容,如果未能解决你的问题,请参考以下文章