Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式将iOS应用程序锁定为单一应用程序模式_Ios_Objective C_Iphone Privateapi_Springboard - Fatal编程技术网

以编程方式将iOS应用程序锁定为单一应用程序模式

以编程方式将iOS应用程序锁定为单一应用程序模式,ios,objective-c,iphone-privateapi,springboard,Ios,Objective C,Iphone Privateapi,Springboard,注意:我不想将此应用提交到应用商店 我想要实现的目标: 我想要一个简单的应用程序,一个视图有两个按钮锁定和解锁 锁定-此按钮将锁定设备。只有此应用程序的屏幕将显示任何其他内容,即使重新启动后,也不会显示相同的屏幕。主页按钮,手势将被禁用,类似于单一应用程序模式 解锁-这将解锁设备并切换到设备的正常行为 iOS: 我想要iOS 4.3及以上版本 我已经检查了以下解决方案,但它们不符合我的要求 配置配置文件 但它是手动的(重启设备,打开你想在单一应用模式下运行的应用程序)。我想通过我上面提到的应用

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

我想要实现的目标:

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

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

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

iOS: 我想要iOS 4.3及以上版本

我已经检查了以下解决方案,但它们不符合我的要求

  • 配置配置文件

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

  • 引导访问(iOS 6及以上版本)

    我希望它能适用于所有操作系统和编程

  • 有没有办法做到这一点?我不想把它提交到应用商店,有没有任何私有api,springboard的一些黑客来实现这一点


    提前谢谢

    据我所知,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及更高版本中可用

      但这需要监控设备模式


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

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

  • 使用Apple Configurator监控iPad/iphone
  • 安装与MDM相关的文件(每个MDM都有自己的一组说明,通常包括下载配置文件)
  • 每个MDM都有一个单应用模式或多应用模式选项。选择第二个选项并将应用程序ID添加到列表中。(单应用模式与MDM配合得很好,但我不想让应用一直锁定在单个应用上)
  • 我使用
    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,有没有办法禁用睡眠/锁定按钮?