jueves, 7 de enero de 2016

Esconder botones de ajustes rápidos en Android

Al utilizar teléfonos móviles como herramienta de trabajo muchas veces es necesario restringir el acceso a ciertas opciones y aplicaciones para evitar que el usuario cambie las configuraciones del dispositivo, por ejemplo si se utiliza una aplicación de rastreo por GPS no queremos que un usuario pueda apagar el mismo para evitar que se detecte su ubicación.

Buscando en la Playstore encontré una excelente herramienta para lograr ésto: la herramienta Smart AppLock la cual permite bloquear el acceso a aplicaciones específicas protegiéndolas con una contraseña definida por el administrador, de manera que si el usuario no conoce la contraseña no puede abrir una aplicación bloqueada.

Para este proyecto necesitaba bloquear todo acceso a la configuración de GPS y el apagado/encendido del mismo, logré realizar ésto instalando el Smart Applock, bloqueando la aplicación "Ajustes" y "Configuración de Google".

Además de estas dos opciones era necesario eliminar la opción para apagar y encender el GPS de la barra de ajustes rápidos:



La versión de Android del Samsung Galaxy Ace 4 permite agregar o quitar elementos de esta barra, por lo que se suprimió el botón sin problema, se logró restringir el acceso tal y como lo necesitaba.

Algunos meses después nuestro proveedor de telefonía cambió los modelos de dispositivos a Samsung Galaxy Ace J1, este viene con Android Lollipop 5.1.1, utilicé el mismo método que con el Ace 4 sin embargo este dispositivo no permitía eliminar los botones de la barra de ajustes rápidos.

Luego de unas cuantas horas de investigación encontré el siguiente comando de ADB que permite especificar qué botones deben aparecer en la barra de ajustes rápidos.  El comando es adb shell settings.

Para ver una lista de los botones de ajustes rápidos que tiene habilitados nuestro Android se puede utilizar el siguiente comando: 

adb shell settings get system notification_panel_active_app_list

Este nos muestra una cadena que indica las opciones que se encuentran habilitadas en dicha barra en el orden que se encuentran, cada identificador separado por punto y coma, de esta forma:

Wifi;Location;SilentMode;AutoRotate;Bluetooth;MobileData;PowerSaving;AirplaneMode;DormantMode;TorchLight;UltraPowerSaving;WiFiHotspot;SmartStay;PersonalMode;AllShareCast;Nfc;Sync;

Para efectos prácticos solo necesito dejar habilitados el Wi-fi, la configuración de sonido/vibración, el giro automático y el Bluetooth, esto lo logro a través del siguiente comando:

adb shell "settings put system notification_panel_active_app_list Wifi\;SilentMode\;AutoRotate\;Bluetooth\;"

Nótese que el comando está recibiendo como parámetros los nombres de las opciones que quiero que aparezcan como botones en la barra de ajuste rápido, estas deben ir separadas por los caracteres \; los cuales se utilizan como separadores para que el comando funcione correctamente.

Una vez procesado este comando el botón "Ubicación" desaparecerá de la barra de ajustes rápidos, asunto arreglado:


Espero que este post sea útil para alguien que tenga el mismo inconveniente!

No hay comentarios: