注意:我不想将此应用提交到应用商店。
我想要实现的目标:
我想要一个简单的应用程序,一个 View 有两个按钮锁定和解锁。
锁定 - 此按钮将锁定设备。只有这个应用程序的屏幕不会显示任何其他内容,即使在重新启动后也会显示相同的屏幕。主页按钮,手势将被禁用,类似于单应用模式。
解锁 - 这将解锁设备并切换到设备的正常行为。
iOS : 我想要这个适用于 iOS 4.3 及更高版本。
我检查了以下解决方案,但这些不符合我的要求
配置文件
Lock-down iPhone/iPod/iPad so it can only run one app
但它是手动的(重启设备,打开您要在单应用模式下运行的应用)。我想通过我的应用程序按照我上面提到的方式以编程方式进行。
引导式访问(iOS 6 及更高版本)
How to lock down user to Single App mode in iOS 6, Programmatically?
我希望它以编程方式适用于所有操作系统。
有什么办法吗?因为我不想将它提交到应用程序商店,是否有任何私有(private) api,跳板的一些 hack 来实现这一点?
提前致谢!!
最佳答案
据我所知,在 iOS 7 中有一项新功能可以让您完全按照自己的意愿行事。 但是,它仅适用于 iOS 7(我相信它仅适用于受监管的设备)。
1) 您需要使用 autonomousSingleAppModePermittedAppIDs
键安装限制配置文件(查看 here)
这是一个时间步骤,用户需要手动接受此配置文件。
还有另一种选择可以使用 MDM 静默安装它,但这对您来说可能有点矫枉过正。
2) 你应该使用 API:
UIAccessibilityRequestGuidedAccessSession (to lock/unlock)
定义here
3) 和最美的部分。所有这些都是正式文件。因此,您甚至可以将其提交到 AppStore。
附言你为什么关心 4.3 或 5?他们现在的市场份额很小。很有可能甚至 iOS 6 的市场份额也不足 20%。
更新 1
您可以尝试使用发送点击和键的 API(在 iPhone-privateapi 标签中搜索 GSEvent)。可能正在使用这些 API,您可以执行 triple home 来打开和关闭辅助功能。
如果这项工作可行,我认为您应该能够覆盖 iOS 6。我不确定在此之前是否可以使用此 API 和三次主屏幕点击。
看起来这个私有(private) API 在 iOS 7 中不再可用。所以,你可能可以忽略这个想法。
关于ios - 以编程方式在单个应用程序模式下锁定 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285136/