以编程方式在单一应用模式下lockingiOS应用

注意:我不想将这个应用程序提交到应用程序商店。

我想实现的是:

我想要一个简单的应用程序与一个视图有两个buttonlocking和解锁。

locking – 此button将locking设备。 即使在重新启动同一个屏幕后,只有这个应用程序的屏幕才会显示任何其他内容。 主页button,手势将被禁用,类似于单一的应用程序模式。

解锁 – 这将解锁设备并切换到设备的正常行为。

iOS:我想要iOS 4.3及更高版本。

我已经检查了以下解决scheme,但这些与我的要求不符

  1. configuration文件

    lockingiPhone / iPod / iPad,所以它只能运行一个应用程序

    但它是手动(重启设备,打开应用程序,你想运行在单一的应用程序模式)。 我想通过我的应用程序以上述方式编程。

  2. 指导访问(iOS 6及以上)

    如何在iOS 6中以编程方式将用户locking到单一应用程序模式?

    我希望它做所有的操作系​​统和编程。

有没有办法做到这一点? 因为我不想把它提交给应用程序商店是否有任何私人API,一些跳板实现这个?

提前致谢 !!

正如我在iOS 7中所知道的那样,有一个新function可以完成你想要的function。 但是,它只适用于iOS 7(我相信它只适用于监督设备)。

1)您将需要安装限制configurationconfiguration文件与autonomousSingleAppModePermittedAppIDs键(看看这里 )

这是一个时间步骤,用户需要手动接受这个configuration文件。

还有一种select是使用MDM来默默安装,但这对您来说可能是一种矫枉过正。

2)你应该使用API​​:

 UIAccessibilityRequestGuidedAccessSession (to lock/unlock) 

这是在这里定义的

3)最漂亮的部分。 这一切都是正式的文件。 所以,你甚至可以把它提交给AppStore。

PS为什么你关心4.3或5? 到目前为止,它们的市场份额很小。 iOS 6最有可能已经低于20%的市场份额。

更新1

潜在地,您可以尝试使用发送点击和键的API(在iPhone-privateapi标签中searchGSEvent)。 可能会使用这些API,你可以做三重家庭切换无障碍开启和closures。

如果这项工作,我认为你应该能够覆盖iOS 6.我不知道这个API和三重主页点击之前是否可用。

它看起来像这个私人的API是不可访问的,所以,可能你可以忽略这个想法。

在MDMconfiguration中,有一个选项

  • autonomousSingleAppModePermittedAppIDs

    可选的。 仅受监督。 如果存在,则允许arrays中列出的软件包ID所标识的应用程序自主进入单一应用程序模式。 可用性:仅在iOS 7.0及更高版本中可用。

    但是这需要监督设备模式。

只是想写在这个尽pipe这是旧的,因为我需要实施类似的解决scheme,我得到了它的工作。 对我来说这个步骤如下,并在这里注意,这涉及到MDM和其他具体步骤。

我的要求如下。 每个位于不同位置的iPad都安装了一组应用程序。为了方便起见,假定每个部门都有自己的应用程序。 参与者打开与他们部门有关的应用程序。 要进行testing,APP会自动将iPadlocking为单一应用程序模式,在testing结束时,它将自行解锁。

  1. 使用Apple Configurator监督iPad / iphone。
  2. 安装MDM相关文件(每个MDM都有自己的一套说明,通常包括下载一个configuration文件)。
  3. 每个MDM都有一个“单应用程序模式”或“多应用程序模式”选项。 select第二个选项并将应用程序ID添加到列表中。 (单个APP模式对于MDM来说工作得非常好,但是我不希望应用程序一直被locking到一个APP上)。
  4. 我使用UIAccessibilityRequestGuidedAccessSession apilocking设备从单一应用程序模式解锁。

http://bobxcode.blogspot.com/2015/12/programmatically-implement-single-app.html

谢谢,鲍勃