Sheshnath
Sheshnath

Reputation: 3393

How to detect if UIAccessibilityRequestGuidedAccessSession is active on device, iOS swift?

I know how to put app into Single app mode programmatically, provided that Autonomous single app mode persimmon is granted by MDM server to App.

This link have detail description about how to lock app in single app mode too.

Code to Apply single app mode as below -

UIAccessibilityRequestGuidedAccessSession(true){
            success in
            completionBlock(success)
        }

My Question/Requirement is, detect if app is running in Autonomous single single app mode or UIAccessibilityRequestGuidedAccessSession is enabled, if it's enabled then only show alert to user and ask if he wish to disable Single App mode.

I Tried to detect using UIAccessibilityIsGuidedAccessEnabled() but it's of no use, as return value is always false.

Upvotes: 0

Views: 1541

Answers (2)

Sheshnath
Sheshnath

Reputation: 3393

So @Akaino answer is right, but UIAccessibilityIsGuidedAccessEnabled method wasn't working as expected due to i used to apply code below on didFinishLaunchingWithOptions hence it wasn't working properly

UIAccessibilityRequestGuidedAccessSession(true){
            success in
            completionBlock(success)
        }

When i applied same code above on viewDidLoad() method, UIAccessibilityIsGuidedAccessEnabled is working as expected.

Upvotes: 1

Akaino
Akaino

Reputation: 1025

You can use BOOL UIAccessibilityIsGuidedAccessEnabled(void); to get that information.

Source@AppleDocs

You could also try to add UIGuidedAccessRestrictionDelegate and then react to

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState

Remember though, guided access needs to be enabled by the user (triple tap home button). Not from the settings!

Upvotes: 1

Related Questions