检测或响应引导访问?

ang*_*son 17 ios6 guided-access

在我们正在创建的应用中,我们需要添加一些额外的屏幕来配置应用.

如果我们可以在应用程序的开始屏幕上添加额外的按钮,那将是很好的,只有在iPad没有被引导访问时才能看到.

是否可以通过引导访问检测设备当前是否正在运行,并对其启用或禁用做出反应?

Ter*_*ryB 33

你想要这样的东西:

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

if (!UIAccessibilityIsGuidedAccessEnabled()) {
   // show something since I'm not in guided access
}
Run Code Online (Sandbox Code Playgroud)

如果你想知道它何时发生变化......

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

然后根据第一次测试检查它是否打开或关闭.

  • 这仅在激活引导访问时有效,即当用户三次点击主页按钮并启动它时 - 不是在辅助功能设置中设置时. (3认同)

dji*_*i33 5

WWDC 2013 深度引导访问(39:26 开始)


检查引导访问是否已启用(iOS 6+):

UIAccessibilityIsGuidedAccessEnabled()
Run Code Online (Sandbox Code Playgroud)

响应引导访问状态更改(iOS 6+):

UIAccessibilityGuidedAccessStatusDidChangeNotification
Run Code Online (Sandbox Code Playgroud)

在引导访问模式(iOS 7+) 下添加自定义限制:

UIGuidedAccessRestrictionDelegate
Run Code Online (Sandbox Code Playgroud)

获取指定限制的限制状态(iOS 7+):

迅速:

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState
Run Code Online (Sandbox Code Playgroud)

对象C

UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier);
Run Code Online (Sandbox Code Playgroud)