如何检测 UIAccessibilityRequestGuidedAccessSession 在设备上是不是处于活动状态,iOS swift?
Posted
技术标签:
【中文标题】如何检测 UIAccessibilityRequestGuidedAccessSession 在设备上是不是处于活动状态,iOS swift?【英文标题】:How to detect if UIAccessibilityRequestGuidedAccessSession is active on device, iOS swift?如何检测 UIAccessibilityRequestGuidedAccessSession 在设备上是否处于活动状态,iOS swift? 【发布时间】:2018-08-31 06:57:57 【问题描述】:我知道如何以编程方式将应用程序置于单应用程序模式,前提是 MDM 服务器将自治单应用程序模式柿子授予应用程序。
这个link也有关于如何在单应用模式下锁定应用的详细说明。
应用单应用模式的代码如下 -
UIAccessibilityRequestGuidedAccessSession(true)
success in
completionBlock(success)
我的问题/要求是,检测应用程序是否在自治单应用程序模式下运行或 UIAccessibilityRequestGuidedAccessSession 已启用,如果已启用,则仅向用户显示警报并询问他是否希望禁用单应用程序模式。
我尝试使用 UIAccessibilityIsGuidedAccessEnabled() 进行检测,但没有用,因为返回值始终为 false。
【问题讨论】:
developer.apple.com/documentation/uikit/… 【参考方案1】:您可以使用BOOL UIAccessibilityIsGuidedAccessEnabled(void);
获取该信息。
Source@AppleDocs
您也可以尝试添加UIGuidedAccessRestrictionDelegate
,然后做出反应
func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState
但请记住,引导式访问需要由用户启用(三次点击主页按钮)。不是来自设置!
【讨论】:
我尝试使用 UIAccessibilityIsGuidedAccessEnabled() 进行检测,但没有用,因为返回值始终为 false。 按照文档状态,它工作得很好:Return Value YES when a Guided Access session is currently active; otherwise, NO.
所以你的代码似乎有问题。请分享您的尝试。【参考方案2】:
所以@Akaino 的答案是正确的,但是 UIAccessibilityIsGuidedAccessEnabled 方法没有按预期工作,因为我曾经在 didFinishLaunchingWithOptions 上应用下面的代码,因此它不能正常工作
UIAccessibilityRequestGuidedAccessSession(true)
success in
completionBlock(success)
当我在 viewDidLoad() 方法上应用上面相同的代码时,UIAccessibilityIsGuidedAccessEnabled 按预期工作。
【讨论】:
以上是关于如何检测 UIAccessibilityRequestGuidedAccessSession 在设备上是不是处于活动状态,iOS swift?的主要内容,如果未能解决你的问题,请参考以下文章