问题
如何自动化 iPhone 上的 引导访问 模式?我需要自动化启用和删除此功能。
背景 爱荷华州政府的这个应用 使用 iOS 应用程序显示您的驾照。 问题在于,将手机交给当局后,他们可以完全访问该设备。
如果我有这个或类似应用程序的源代码,如何在退出临时“展览模式”时要求密码,以便照片、电子邮件或短信既不可用于手机,也不可通过 USB 访问(理想情况下)。
我找到了类似的Android 解决方案,但现在正在寻找 iOS 解决方案
问题
如何自动化 iPhone 上的 引导访问 模式?我需要自动化启用和删除此功能。
背景 爱荷华州政府的这个应用 使用 iOS 应用程序显示您的驾照。 问题在于,将手机交给当局后,他们可以完全访问该设备。
如果我有这个或类似应用程序的源代码,如何在退出临时“展览模式”时要求密码,以便照片、电子邮件或短信既不可用于手机,也不可通过 USB 访问(理想情况下)。
我找到了类似的Android 解决方案,但现在正在寻找 iOS 解决方案
autonomousSingleAppModePermittedAppIDs
)。UIAccessibility.requestGuidedAccessSession(true){
success in
print("Request guided access success \(success)")
}
在iOS 7以下版本中,您无法通过编程方式将iOS设备置于Kiosk模式,也不能通过应用程序使其成为Kiosk应用程序(无法通过编程方式禁用主页按钮事件并在应用程序中获取事件)。
要使设备在Kiosk模式下工作,可以使用苹果的Guided Access。但是您无法通过编程方式启用它。有关更多信息,请访问这里。
iOS 7及以上版本:
您可以使用:
void UIAccessibilityRequestGuidedAccessSession(BOOL enable, void(^completionHandler)(BOOL didSucceed))
参考UIAccessibilityRequestGuidedAccessSession
UIAccessibilityRequestGuidedAccessSession
异步地将应用程序转换到或从单个应用程序模式。
声明Swift
func UIAccessibilityRequestGuidedAccessSession(_ enable: Bool, _ completionHandler: ((Bool) -> Void)!)
Objective-C
void UIAccessibilityRequestGuidedAccessSession ( BOOL enable, void (^completionHandler)(BOOL didSucceed) ); 参数enable
指定为YES以将设备置于此应用程序的单个应用程序模式中,或指定为NO以退出单个应用程序模式。
completionHandler
该块通知您的应用程序操作的成功或失败。该块采用以下参数:didSucceed
如果为YES,则应用程序成功地转换到或从单个应用程序模式。 如果为NO,则应用程序或设备不符合单个应用程序模式的要求,或存在其他错误。 讨论
您可以使用此方法锁定您的应用程序进入单个应用程序模式,并稍后释放它。 例如,一个考试应用程序可能在测试开始时进入此模式,并在用户完成测试后退出此模式。 仅支持对使用移动设备管理(MDM)进行监督的设备进入单个应用程序模式,并且必须通过MDM启用此模式的应用程序本身。 您必须平衡每次进入单个应用程序模式的调用,并使用调用退出该模式。
因为进入或退出单个应用程序模式可能需要一些时间,所以此方法异步执行,并使用completionHandler块通知您结果。 导入语句
import UIKit 可用性
iOS 7.0及更高版本可用。
您还可以使用UIAccessibilityIsGuidedAccessEnabled来检查是否启用了引导访问。
UIAccessibilityRequestGuidedAccessSession
异步地将应用程序转换到或从单应用程序模式转换。
void UIAccessibilityRequestGuidedAccessSession(BOOL enable, void(^completionHandler)(BOOL didSucceed))
参数
enable
将设备置于此应用的单一应用模式中,请指定YES,或者退出单一应用模式,请指定NO。
completionHandler
通知您的应用程序操作成功或失败的块。此块使用以下参数:
didSucceed
completionHandlerblock
通知结果。Availability
Available in iOS 7.0 and later.
参见
UIAccessibilityIsGuidedAccessEnabled
UIAccessibility.h