Modo Kiosko en Android

Modo Kiosko en Android

Creando un Modo Kiosko en dispositivos Android

 

Android es flexible, esto un hecho. Es por ello que aporta cierta ventaja para realizar según que aplicaciones o tareas. En nuestro caso, un aplicación para sumergir nuestro dispositivo Android en un modo Kiosko.

 

Seguramente ya habréis escuchado esta palabra con anterioridad en algún otro lugar pero nunca viene de más una revisión de conceptos.

 

¿Qué es el Modo Kiosko?

 

El modo kiosko se puede definir como un estado del dispositivo o aplicación en el que el usuario solo puede interactuar con ese terminal a través de un entorno acotado.

En el caso de que el sistema de kiosko fuera gestionado a través de una app, el usuario solo podrá tener control sobre lo que dicha app quiera.

 

Este entorno acotado, por norma general, viene definido por el cliente a modo de requisitos funcionales. Uno de los ejemplos más comunes suele ser “No quiero que el usuario abandone mi aplicación” o “Quiero que el usuario solo pueda abrir mi aplicación”.

 

Esto me está interesando, ¿cómo habéis hecho el Modo Kiosko?

 

Perfecto, ya nos vamos entendiendo. En Irontec somos partidarios del Software Libre, es por ellos que hemos hecho uso de él para desarrollar una solución técnica.

 

Partimos de una base hecha por el MIT Mobile Experience Lab para cambiar en lanzador de aplicaciones de Android y posteriormente modificamos el código para filtrar aquellas aplicaciones que nos interesaba que se mostrarán en el lanzador.

 

Como primera parte de la solución, funcionaba. Aun así, se podía acceder a través de la barra de notificaciones a las aplicaciones del sistema y eliminar nuestro querido lanzador o abrir y usar cualquier otra app.

Dado que la UI del sistema no puede bloquearse mediante código, decidimos hacer uso de los privilegios de super usuario (Root) del terminal para limitar este acceso. La librería RootTools nos facilitó la ejecución de estos comandos, con los cuales conseguimos evitar que la barra de notificaciones se desplegará.

 

Una vez en esta fase del desarrollo, pensamos que lo mejor era tener un lanzador actualizable independientemente de la gestión del Modo Kiosko. Por ello, desarrollamos otra app que sería la encargada de la gestión del Modo Kiosko y que sería servida junto a nuestro lanzador. A esta app la denominamos AppManager.

 

¿AppManager? ¿Podrías contarme un poco más?

 

¡Claro! Veamos, AppManager nos permite personalizar un poco más como mostramos las aplicaciones cuyo uso está permitido dentro del Modo Kiosko. Incluso podemos hacer uso de muchas de las API´s nativas de Android, por ejemplo, si quisiéramos mostrar un mapa, podríamos hacerlo, en cambio desde el lanzador sería mucho más complejo.

 

Las funciones que le dimos a esta app fueron las siguientes:

 

  • Bloquear la UI del sistema para evitar desplegar la barra de notificaciones mediante comandos de super usuario (root).
  • Bloquear los botones de volumen y el botón de encendido.
  • Controlar el botón de atrás.
  • Controlar el botón de home.
  • Controlar las aplicaciones en segundo plano, situando nuestra app en el frente si esta pasa en algún momento a segundo plano o si alguna aplicación no deseada recupera de algún modo el foco.
  • Permitir la ejecución de ciertas apps.
  • Posibilidad de establecer un sistema de reinicios sistemáticos.
  • Posibilidad de forzar un reinicio.
  • Información específica de la app y de su configuración.

 

También incluimos una pequeña vista donde poder revisar la configuración de la aplicación por terminal ya que llegado el caso, estos terminales se pueden distribuir con diferentes configuraciones.

 

¿Qué alternativas valorasteis?

La principal alternativa fue crearnos nuestra propia ROM de Android donde pudiéramos modificar el código propio del sistema operativo para poder personalizar todo. La mayor pega que nos encontramos para realizarlo de esta manera fue, que el cliente tiene que tener facilidades para poder actualizar el ecosistema ante futuros cambios. Deducimos que actualizar una app resultaba mucho más sencillo para el gestor final del terminal.

 

Conclusiones

Pese a poder realizar una integración más profunda con Android mediante la creación de una ROM personalizada de Android, preferimos premiar la modularidad y la agilidad ante cambios ligeros y rápidos por parte del cliente.

 

Para cualquier duda, os espero en los comentarios 😉

 



¿Te gusta este post? Es solo un ejemplo de cómo podemos ayudar a tu empresa...
Sobre Asier Fernandez Rodero

Android OS developer at @irontec. Cars&Coffee fan. #LIFEISGOOD! No snowflake in an avalanche ever feels responsible. - Stanislaw Jerzy Lec

1 Comentario

¿Por qué no comentas tú también?


  • Sería bueno que publicaran mas contenido de Android. es un buen blog tecnológico.

    Tuanity Hace 2 años Responde


  • hola podrian contactarme? me gustaria saber si pueden bloquear puertos usb de una tablet para que no lea informacion externa de ningun tipo. y cual es el costo?

    Mary Hace 2 años Responde


  • Buen post y buen invento lo del modo kiosko en android. Saludos.

    Todoandroid Hace 2 años Responde


  • Buenas tardes, la aplicación de la hablas en el post esta disponible para ser descargada y utilizada??

    Gracias!

    Manuel Florez Hace 5 meses Responde


Queremos tu opinión :)