如何检测 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在张量流对象检测中仅检测特定类别的对象

如何使用 TextRecognizer 检测单词?它只能检测 TextBlocks

如何快速入门深度学习目标检测?

如何计算 OpenCV 人脸检测器的检测分数?

业务系统弱口令如何检测

如何开展一个机器视觉检测项目?