¿Son posibles las aplicaciones de pantalla completa estilo kiosco en iOS, Android o Windows Phone?

4

Una compañía de seguros de automóviles popular en los Estados Unidos tiene una aplicación que muestra "automóvil digital" papeles del seguro. En los comerciales, estas aplicaciones se abren y el usuario entrega el teléfono desbloqueado a los oficiales de policía. No es irrazonable imaginar lo que podría suceder en estas situaciones cuando alguien tiene acceso sin restricciones a un teléfono.

Idealmente, si una aplicación similar a esta estuviera en uso generalizado, me gustaría que evitara el cambio a otra aplicación (correo electrónico, contactos, SMS, etc.) hasta que se ingresara una contraseña.

Otros escenarios donde esto es útil son las tarjetas de identificación, las versiones modales de las aplicaciones populares (juegos), un padre que desea controlar qué aplicaciones usan sus hijos, los teléfonos de demostración en una feria comercial, etc.

Pregunta

  • ¿Puede cualquier teléfono móvil (iOS, Android o Windows) admitir una aplicación que tome el control de "pantalla completa" y no salga hasta que se ingrese una contraseña?

  • Si tal solución es posible, ¿es segura? (¿Los datos locales aún están cifrados?)

(Supongo que Android y Blackberry 10 son iguales ya que ambos pueden ejecutar aplicaciones similares)

    
pregunta random65537 02.09.2013 - 06:02
fuente

4 respuestas

7

Sé que hay un gran ejemplo y discusión sobre esto para dispositivos Samsung y Android, por lo que es posible que desees comenzar allí y ver si te lleva a donde quieres ir con todo lo demás.

enlace

  

Eliminación de la barra de título y la barra de estado   ... es posible que desee ... eliminar la barra de título de la aplicación y la barra de estado del sistema, que hará que la aplicación se muestre en pantalla completa. Tenga en cuenta que algunos dispositivos (como las tabletas Galaxy Nexus o Galaxy Tab) tienen otra barra con botones que están representados por botones de hardware en otros dispositivos. Esa barra no puede ser cubierta por ninguna aplicación. Para eliminar esas barras, use el siguiente código antes de llamar al método setContentView en su Actividad. Solicitará la función extendida (para eliminar la barra de título) y establecerá la bandera adecuada en la ventana (para cubrir la barra de estado).

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  

Evita salir de la aplicación a través del botón Atrás Como la aplicación del kiosco no debería estar cerrada, puedes presionar el botón Atrás y asignar   Otra acción para ello. Por ejemplo, es posible que desee ir a la página de inicio   Cuando el usuario intenta salir de la aplicación. Para ello, anula uno de los   Métodos de actividad, que se llama cada vez que se pulsa el botón Atrás.   presionado. [o configúrelo como nulo o actualice para mantenerlo en la misma pantalla]

@Override
        public void onBackPressed() {
        mWebView.loadUrl(mHomepageUrl);
    }
  

Deshabilitar el botón de inicio En general, deshabilitar el botón de inicio no es una buena práctica, pero puede ser muy útil al desarrollar un quiosco.   la aplicación Desde Android 4.0 no existe un método efectivo para hacerlo, por lo que   puede necesitar usar otra solución, por ej. configurando tu aplicación como un hogar   pantalla, que se describe más adelante. Sin embargo, para versiones anteriores del sistema operativo   puede cambiar el tipo de ventana a keyguard, lo que evitará   Manejando el botón de inicio presionando.

@Override
        public void onAttachedToWindow() {
        getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }
  

Configura una aplicación para que cubra la pantalla de bloqueo Si quieres que tu aplicación esté visible todo el tiempo, configurarla para que esté en la parte superior de la pantalla de bloqueo puede   sé útil. Esto es bastante simple de lograr, solo necesitas configurar algunos   banderas adicionales para su ventana de Actividad.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

(fragmentos de los elementos más útiles del documento relacionados con una aplicación de kiosco)

    
respondido por el GµårÐïåñ 02.09.2013 - 10:33
fuente
5

Esta solución se maneja fácilmente en iOS, si utiliza Apple Configurator , que permite que un dispositivo desplegarse en lo que ellos llaman modo "supervisado". En este modo, puede configurar una sola aplicación para que use el dispositivo.

En este caso, el dispositivo cargará automáticamente esa aplicación en el inicio y no permitirá que un usuario salga por ningún medio normal.

Creo que está diseñado para el comercio minorista y la educación, donde el iPad solo está pensado como un dispositivo que ejecuta una sola aplicación.

El configurador de Apple tiene algunos problemas de escala (requiere conexión USB a una Mac para configurarlo) pero se puede usar junto con el software MDM (por ejemplo, Airwatch) para solucionar algunos de esos problemas.

En cuanto a Android, no he visto ninguna funcionalidad ampliamente compatible para realizar una tarea similar, aunque puede haber opciones programáticas como señala @gardian. Lo que podría hacer si tiene una solución MDM es bloquear el dispositivo solo para un par de aplicaciones. Una cosa a tener en cuenta en este ámbito es que el MDM de Android puede ser específico para fabricantes y teléfonos específicos. La API básica de Android MDM es bastante básica, pero Samsung, por ejemplo, tiene su programa SEGURO que agrega una carga de opciones de bloqueo adicionales.

    
respondido por el Rоry McCune 02.09.2013 - 10:51
fuente
1

En iOS, puedes lograrlo mediante el acceso guiado:

Configuración - > General - > Accesibilidad - > Acceso guiado - > Encendido,

Inicie la aplicación en la que desea bloquear el iPhone / iPad, haga clic tres veces en el botón Inicio y siga las instrucciones en pantalla.

    
respondido por el Mindaugas 01.06.2015 - 16:01
fuente
0

Aunque el uso de Acceso guiado y el Configurador de Apple son soluciones válidas, eliminar la barra de estado es simple en iOS. Utilice este método de llamada en la inicialización de su aplicación para ocultarlo.

Objective-C:

[[UIApplication sharedApplication] setStatusBarHidden:YES
                                   withAnimation:UIStatusBarAnimationSlide];

Swift:

UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
    
respondido por el DDPWNAGE 29.07.2015 - 05:22
fuente

Lea otras preguntas en las etiquetas