以编程方式将iOS应用程序锁定为单一应用程序模式
注意:我不想将此应用提交到应用商店 我想要实现的目标: 我想要一个简单的应用程序,一个视图有两个按钮锁定和解锁 锁定-此按钮将锁定设备。只有此应用程序的屏幕将显示任何其他内容,即使重新启动后,也不会显示相同的屏幕。主页按钮,手势将被禁用,类似于单一应用程序模式 解锁-这将解锁设备并切换到设备的正常行为 iOS: 我想要iOS 4.3及以上版本 我已经检查了以下解决方案,但它们不符合我的要求以编程方式将iOS应用程序锁定为单一应用程序模式,ios,objective-c,iphone-privateapi,springboard,Ios,Objective C,Iphone Privateapi,Springboard,注意:我不想将此应用提交到应用商店 我想要实现的目标: 我想要一个简单的应用程序,一个视图有两个按钮锁定和解锁 锁定-此按钮将锁定设备。只有此应用程序的屏幕将显示任何其他内容,即使重新启动后,也不会显示相同的屏幕。主页按钮,手势将被禁用,类似于单一应用程序模式 解锁-这将解锁设备并切换到设备的正常行为 iOS: 我想要iOS 4.3及以上版本 我已经检查了以下解决方案,但它们不符合我的要求 配置配置文件 但它是手动的(重启设备,打开你想在单一应用模式下运行的应用程序)。我想通过我上面提到的应用
提前谢谢 据我所知,iOS 7中有一项新功能,允许您完全按照自己的意愿操作。 但是,它只适用于iOS 7(我相信它只适用于受监控的设备)
1) 您需要使用
autonomoussingleappmodepermittedapids
键安装限制配置文件(查看)
这是一个时间步骤,用户需要手动接受此配置文件
还有另一种方法可以使用MDM以静默方式安装它,但这对您来说可能是一种过度使用
2) 您应该使用API:
UIAccessibilityRequestGuidedAccessSession (to lock/unlock)
它被定义为
3) 最美丽的部分。所有这些都是官方文件。因此,您甚至可以将其提交到AppStore
另外,你为什么关心4.3或5?到目前为止,它们的市场份额很小。最有可能的是,iOS 6的市场份额已经低于20%
更新1
您可以尝试使用发送点击和按键的API(在iPhone privateapi标签中搜索GSEvent)。可能正在使用这些API,您可以使用triple home来打开和关闭可访问性
如果这是有效的,我认为你应该能够涵盖iOS 6。我不确定在此之前是否有此API和triple home click可用
看起来这个私有API在iOS 7中已经不可访问了。所以,您可能可以忽略这个想法。在MDM配置中,有一个选项
- 自主的SingleAppModePermittedAppId 可选。只受监督。如果存在,允许应用 由要删除的阵列中列出的束ID标识 自动进入单一应用程序模式。 可用性:仅在iOS 7.0及更高版本中可用 但这需要监控设备模式
UIAccessibilityRequestGuidedAccessSessionAPI
从单一应用模式锁定解锁设备鲍勃谢谢!!!我不知道引导访问也有api。。是的,iOS 7占据了主要的市场份额,但有些应用的最低iOS要求是4.3等,所以我无法升级所有应用。为了测试和应用程序支持,这些设备都是这样保存的。AutonomousSingleAppModePermittedAppID需要对设备进行监控,据我所知,这要求设备已使用Apple Configurator进行了物理设置,并且不允许设备与任何其他机器同步。有什么办法可以解决这个问题吗?@BenDowling:这是一个有趣的信息。我错过了这条信息,它只是用于监督模式。@VictorRonin我不认为步骤1+2是100%准确的。从docs
…仅支持使用移动设备管理(MDM)监控的设备进入单一应用模式。。必须启用应用程序本身。。通过MDM。
。尽管如此,我仍然有[issues]()@Rushi,因为我记得您需要注册enterprise developer program,它允许您成为MDM供应商,并且您将能够通过MDM安装此类配置。然而,如何编写这样一个应用程序是一个远远超出StackOverflow的主题。您能告诉我如何以编程方式监控设备吗?。事实上,我必须制作一个像这样的应用程序,请你指导我。对于MultipleAppMode,有没有办法禁用睡眠/锁定按钮?