20

注意:我不想将此应用提交到应用商店。

我想要达到的目标:

我想要一个具有两个按钮锁定和解锁的视图的简单应用程序。

锁定- 此按钮将锁定设备。仅此应用程序的屏幕将显示任何其他内容,即使重新启动后仍会显示相同的屏幕。主页按钮,手势将被禁用,类似于单应用模式。

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

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

我检查了以下解决方案,但这些不符合我的要求

  1. 配置文件

    锁定 iPhone/iPod/iPad,使其只能运行一个应用程序

    但它是手动的(重启设备,打开要在单应用模式下运行的应用)。我想通过我的应用程序以我上面提到的方式以编程方式进行。

  2. 引导式访问(iOS 6 及更高版本)

    如何以编程方式将用户锁定到 iOS 6 中的单应用程序模式?

    我希望它适用于所有操作系统并以编程方式。

有没有办法做到这一点?由于我不想将其提交到应用商店,是否有任何私有 api,跳板的一些破解来实现这一点?

提前致谢 !!

4

3 回答 3

23

据我所知,在 iOS 7 中有一个新功能可以让您完全按照自己的意愿行事。但是,它只适用于 iOS 7(我相信它只适用于受监督的设备)。

1)您需要使用autonomousSingleAppModePermittedAppIDs密钥安装限制配置文件(看看这里

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

还有另一种使用 MDM 静默安装的选项,但这对您来说可能有点过头了。

2)你应该使用API​​:

UIAccessibilityRequestGuidedAccessSession (to lock/unlock)

在这里定义

3)和最美丽的部分。所有这些都是官方文件。因此,您甚至可以将其提交到 AppStore。

PS你为什么关心4.3或5?他们现在的市场份额很小。很可能甚至 iOS 6 的市场份额已经低于 20%。

更新 1

潜在地,您可以尝试使用发送点击和键的 API(在 iPhone-privateapi 标签中搜索 GSEvent)。可能正在使用这些 API,您可以执行三重主页来打开和关闭可访问性。

如果这项工作有效,我认为您应该能够涵盖 iOS 6。我不确定此 API 和三重主页点击是否在此之前可用。

看起来这个私有 API 在 iOS 7 中不再可用了。所以,也许你可以忽略这个想法。

于 2013-11-29T16:07:45.300 回答
3

只是想写这篇文章,即使这很旧,因为我需要实现一个类似的解决方案并且我得到了它的工作。我的步骤如下,这里需要注意的是,这涉及到 MDM 和其他特定步骤。

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

  1. 使用 Apple Configurator 监控 iPad/iphone。
  2. 安装 MDM 相关文件(每个 MDM 都有自己的一组说明,通常涉及下载配置文件)。
  3. 每个 MDM 都有 Single APP Mode 或 MultipleAppMode 选项。选择第二个选项并将应用 ID 添加到列表中。(单个 APP 模式与 MDM 配合得很好,但我不希望应用程序一直锁定到单个 APP)。
  4. 我用UIAccessibilityRequestGuidedAccessSession api来从单应用程序模式锁定解锁设备。

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

谢谢,鲍勃

于 2015-12-13T08:33:48.117 回答
1

在 MDM 配置中,有一个选项

  • 自治SingleAppModePermittedAppIDs

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

    但这需要受监督的设备模式。

于 2014-03-03T11:01:31.767 回答