¿Detectar o reaccionar al acceso guiado?
-
11-12-2019 - |
Pregunta
En una aplicación que estamos creando, debemos agregar algunas pantallas adicionales para configurar la aplicación.
Sería bueno si pudiéramos agregar botones adicionales en la pantalla de apertura de la aplicación, que solo es visible si el iPad no está en acceso guiado.
¿Es posible detectar que el dispositivo se está ejecutando actualmente con acceso guiado y reaccionar a ella habilitado o deshabilitado?
Solución
Quieres algo como esto:
NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO");
if (!UIAccessibilityIsGuidedAccessEnabled()) {
// show something since I'm not in guided access
}
Si desea saber cuándo cambia ...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
Luego verifique si está activado o desactivado según la primera prueba.
Otros consejos
Acceso guiado en profundidad en WWDC 2013 (comienza a 39: 26)
Compruebe si el acceso guiado está habilitado (iOS 6+): < / p>
UIAccessibilityIsGuidedAccessEnabled()
Responder a los cambios de estado de acceso guiado (iOS 6+) :
UIAccessibilityGuidedAccessStatusDidChangeNotification
Agregar restricciones personalizadas mientras está en modo de acceso guiado (iOS 7+): < / p>
UIGuidedAccessRestrictionDelegate
Obtención del estado de restricción para la restricción especificada (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
}