2016-05-13 61 views
3

我的应用程序想要识别用户是否进入了引导访问模式。UIAccessibilityIsGuidedAccessEnabled的陌生人行为Bool - SWIFT

我目前有一个NSNotification设置触发由苹果提供的布尔值,但由于某种原因,它总是提供一个错误的否定。

 NSNotificationCenter.defaultCenter() .addObserver(self, selector: #selector(guidedAccessChanged), name: UIAccessibilityGuidedAccessStatusDidChangeNotification, object: nil) 

将触发下列方法

func guidedAccessChanged() { 

//  NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO"); 

     print("Accessabilitiy enabled: \(UIAccessibilityIsGuidedAccessEnabled() ? "YES" : "NO")") 

     if (!UIAccessibilityIsGuidedAccessEnabled()){ 

      print("guided access Off") 

     } 
     else{ 
      print("guided access On") 

     } 

    } 

但由于某些原因的日志返回

引导访问灭

回答

2

功能和通知应反映是否指导访问权限为已启用并处于活动状态为您的应用程序,不一定当它在设置中。

因此,如果在设置中启用了引导访问,我不知道公开API会让你知道,但是如果它当前正在运行(即用户已三次点击主页按钮以明确地进入引导访问你的应用程序,设置他们的首选选项,并点击开始)UIAccessibilityIsGuidedAccessEnabled()应返回true。但只有这样。

查看的this question

接受答案的意见,也看到this question

+1

有趣的是,苹果有关此功能的文档说,如果用户在设置中启用了“引导访问”,则返回值为“true”;否则为false。它没有提及基于主页按钮三击是否处于活动状态或非活动状态。这是一个文档错误? –

+0

@ChristopherWhidden不是肯定的,但这似乎是其他来源指出的。 –

+0

谢谢克里斯托弗,虽然不是我想听到的答案,但由于你的回答是准确的,我已经给予了赏金。也许我会用苹果来提出这个问题 – Tom