Detectar ou reagir para Acesso Guiado?
-
11-12-2019 - |
Pergunta
Em um aplicativo, nós estamos criando, precisamos adicionar alguns extras telas para configurar o aplicativo.
Seria bom se pudéssemos adicionar botões extras na tela de abertura do aplicativo, que só é visível se o iPad não está no acesso guiado.
É possível detectar que o dispositivo está sendo executado com o acesso guiado, e reagir a ele está sendo ativado ou desativado?
Solução
Você quer algo como isto:
NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO");
if (!UIAccessibilityIsGuidedAccessEnabled()) {
// show something since I'm not in guided access
}
Se você quer saber quando muda...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
em seguida, verifique se ele está ligado ou desligado conforme o primeiro teste.
Outras dicas
Acesso guiado em profundidade na WWDC 2013 (começa em 39:26)
Verifique se o Guided Access está Habilitado ( o iOS 6+ ):
UIAccessibilityIsGuidedAccessEnabled()
Responder ao Acesso Guiado alterações de status ( o iOS 6+ ):
UIAccessibilityGuidedAccessStatusDidChangeNotification
Adicionar restrições aduaneiras enquanto em modo Acesso Guiado ( iOS 7+ ):
UIGuidedAccessRestrictionDelegate
Chegando a restrição estado para a restrição 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
}