olvide - ¿Cómo puedo habilitar programáticamente el acceso guiado(modo kiosco) en un iPhone?
me olvide la contraseña de acceso guiado (5)
Esto no puede hacerse programáticamente. El "acceso guiado" es la única solución.
Consulte http://voice4uaac.com/tips/guided-access-ios6/ para obtener un ejemplo basado en Screenshot.
Pregunta
¿Cómo automatizo el modo de acceso guiado en un iPhone? Necesitaré automatizar la habilitación y eliminación de esta característica
Antecedentes Esta aplicación del estado de Iowa utiliza una aplicación de iOS para mostrar su licencia de conducir. El problema es que después de entregar su teléfono a las autoridades, tienen acceso completo al dispositivo.
Si tengo el código fuente para esto, o una aplicación similar, ¿cómo puedo solicitar una contraseña cuando apago el "modo Kiosk" temporal, para que las fotos, correos electrónicos o mensajes de texto no estén disponibles desde el teléfono o (idealmente) de USB.
Encontré esta solución similar para Android , pero ahora estoy buscando una solución iOS
Por lo que entiendo, esto no se puede hacer usando el código. En un dispositivo sin jailbreak y luego necesitaría crear un daemon que se ejecute como un oyente.
Lo más cercano que puede hacer es configurar el "Acceso guiado" en su dispositivo y vincularlo a la pulsación triple del botón de inicio.
Puede encontrar más información sobre acceso guiado aquí
Debajo de iOS 7
No puede poner el dispositivo iOS en el modo Quiosco mediante programación, tampoco puede hacer nada en su aplicación para convertirlo en una aplicación de Kiosco (no puede desactivar los eventos del botón de inicio de forma programática y no puede obtener los eventos en su aplicación )
Para hacer que el dispositivo funcione en el modo Quiosco, puede usar el Acceso guiado de Apple. Pero no puedes habilitarlo programáticamente. Para más información, consulte aquí
iOS 7 y 7+
Puedes usar:
void UIAccessibilityRequestGuidedAccessSession(BOOL enable, void(^completionHandler)(BOOL didSucceed))
Referencia UIAccessibilityRequestGuidedAccessSession
UIAccessibilityRequestGuidedAccessSession
Transiciones de la aplicación hacia o desde el modo de aplicación única de forma asincrónica. Declaración
Rápido
func UIAccessibilityRequestGuidedAccessSession (_ enable: Bool, _ completionHandler: ((Bool) -> Void)!)
C objetivo
void UIAccessibilityRequestGuidedAccessSession (BOOL enable, void (^ completionHandler) (BOOL didSucceed)); Los parámetros habilitan
Especifique SÍ para poner el dispositivo en el modo de aplicación única para esta aplicación o NO para salir del modo de aplicación única.
terminaciónHandler
El bloque que notifica a tu aplicación sobre el éxito o el fracaso de la operación. Este bloque toma el siguiente parámetro: didSucceed
Si es SÍ, la aplicación realizó la transición hacia o desde el modo de aplicación única con éxito. Si NO, la aplicación o dispositivo no es elegible para el modo de aplicación única o hubo algún otro error. Discusión
Puede usar este método para bloquear su aplicación en el modo de aplicación única y liberarla de ese modo más adelante. Por ejemplo, una aplicación para tomar exámenes podría ingresar a este modo al comienzo de una prueba y salir de ella cuando el usuario complete la prueba. La entrada en el modo de aplicación única se admite solo para dispositivos que se supervisan mediante Mobile Device Management (MDM), y la aplicación en sí misma debe estar habilitada para este modo por MDM. Debe equilibrar cada llamada para ingresar al modo de aplicación única con una llamada para salir de ese modo.
Debido a que ingresar o salir del modo de aplicación única puede llevar algo de tiempo, este método se ejecuta de manera asincrónica y le notifica los resultados usando el bloque completionHandler. Declaración de importación
importar la disponibilidad de UIKit
Disponible en iOS 7.0 y posterior.
También puede usar UIAccessibilityIsGuidedAccessEnabled para verificar si Access está habilitado o no.
Puede ingresar y salir del modo de acceso guiado desde su aplicación. Sin embargo, para hacerlo, el dispositivo debe ser supervisado y debe tener un perfil de MDM instalado que tenga el ID del paquete de la aplicación en la lista de aplicaciones que pueden solicitar el modo de acceso guiado (la clave es autonomousSingleAppModePermittedAppIDs
.
Una vez hecho esto, para ingresar al acceso guiado, haga esto:
UIAccessibilityRequestGuidedAccessSession(true){
success in
println("Request guided access success /(success)")
}
Según la documentación, hay dos formas de permitir que su aplicación iOS se ejecute en modo kiosco.
Perfil de configuración : con la ayuda de la administración de dispositivos móviles (MDM), podemos crear un perfil de configuración empresarial y enviarlo al dispositivo usando cualquier MDM, popularmente conocido como MobileIron, por ejemplo o con la ayuda de cualquier utilidad de configuración de iPhone. Una vez que se instala este perfil, la primera aplicación que se inicia cuando se reinicia el dispositivo será la única aplicación que se ejecutará hasta que reinicie el dispositivo nuevamente.
Acceso guiado (iOS 6 y superior) : desde iOS 6, podemos lograrlo utilizando dos métodos, a saber, Acceso a la guía y Acceso supervisado. Ambos métodos tratan con las funciones de control de accesibilidad, como permitir que el usuario tenga acceso restringido a su dispositivo. Esto solo se puede lograr si tenemos acceso completo al dispositivo.
Podemos lograr configurar el Modo Quiosco en la aplicación de iOS programáticamente en iOS 7 usando un método UIKit UIAccessibilityRequestGuidedAccessSession. Según la documentación del desarrollador de Apple, ''UIAccessibilityRequestGuidedAccessSession transicionará la aplicación desde o hacia el modo de aplicación única de forma asincrónica''.
Como figura en el documento desarrollador de Apple:
UIAccessibilityRequestGuidedAccessSession
Transiciones de la aplicación hacia o desde el modo de aplicación única de forma asincrónica.
void UIAccessibilityRequestGuidedAccessSession(BOOL enable, void(^completionHandler)(BOOL didSucceed))
Parámetros
enable
Especifique SÍ para poner el dispositivo en el modo de aplicación única para esta aplicación o NO para salir del modo de aplicación única.
completionHandler
El bloque que notifica a tu aplicación sobre el éxito o el fracaso de la operación. Este bloque toma el siguiente parámetro:
didSucceed
Si es SÍ, la aplicación realizó la transición hacia o desde el modo de aplicación única con éxito. Si NO, la aplicación o dispositivo no es elegible para el modo de aplicación única o hubo algún otro error. Discusión Puede usar este método para bloquear su aplicación en modo de aplicación única y liberarla de ese modo más adelante. Por ejemplo, una aplicación para tomar exámenes podría ingresar a este modo al comienzo de una prueba y salir de ella cuando el usuario complete la prueba. La entrada en el modo de aplicación única se admite solo para dispositivos que se supervisan mediante Mobile Device Management (MDM), y la aplicación en sí misma debe estar habilitada para este modo por MDM. Debe equilibrar cada llamada para ingresar al modo de aplicación única con una llamada para salir de ese modo. Debido a que ingresar o salir del modo de aplicación única puede llevar algo de tiempo, este método se ejecuta de manera asincrónica y le notifica los resultados usando el bloque de ejecución de completionHandlerblock
.
Availability
Available in iOS 7.0 and later.
Ver también
UIAccessibilityIsGuidedAccessEnabled
Declarado en
UIAccessibility.h