Rilevare o reagire all'accesso guidato?
-
11-12-2019 - |
Domanda
In un'app che creiamo, dobbiamo aggiungere alcune schermate extra per configurare l'app.
Sarebbe bello se potessimo aggiungere pulsanti extra sulla schermata di apertura dell'app, che è visibile solo se l'iPad non è in accesso guidato.
È possibile rilevare che il dispositivo è attualmente in esecuzione con accesso guidato e reagire ad essere abilitato o disabilitato?
Soluzione
vuoi qualcosa del genere:
NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO");
if (!UIAccessibilityIsGuidedAccessEnabled()) {
// show something since I'm not in guided access
}
.
Se vuoi sapere quando cambia ...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
.
Quindi verificare se è acceso o spento secondo il primo test.
Altri suggerimenti
Accesso guidato in profondità al WWDC 2013 (inizia a 39: 26)
.
Controllare se l'accesso guidato è abilitato (iOS 6+): < / P >.
UIAccessibilityIsGuidedAccessEnabled()
.
.
Rispondere ai cambiamenti di stato di accesso guidati (iOS 6+) :
UIAccessibilityGuidedAccessStatusDidChangeNotification
.
.
Aggiungi restrizioni personalizzate durante la modalità di accesso guidate (iOS 7+): < / P >.
UIGuidedAccessRestrictionDelegate
.
.
Ottenere lo stato di restrizione per la restrizione specificata (iOS 7+):
Swift:
func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState
.
OBJ-C
UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier);
. Swift 4.2:
if !UIAccessibility.isGuidedAccessEnabled {
// show something since I'm not in guided access
}
.