# Configuración del modo quiosco del terminal

Esta guía explica cómo usar `PeripheralsLib` para establecer las configuraciones del "Modo Quiosco" en el terminal. Esto te permite restringir la navegación del usuario y configurar una aplicación launcher predeterminada.

<Callout type="warning">

Estas configuraciones pueden bloquear el uso normal del dispositivo (por ejemplo, ocultando las barras de navegación). Asegúrate siempre de tener un mecanismo dentro de tu aplicación para desactivar estas restricciones o un método alternativo para salir de la aplicación durante el desarrollo.

</Callout>

## Objeto de configuración: MSG8210

La configuración se gestiona a través del objeto `MSG8210`. Debes establecer las propiedades de este objeto antes de pasarlo al manager.

### Propiedades

| Propiedad | Tipo | Descripción | ¿Obligatorio? |
| :---- | :---- | :---- | :---- |
| `launcherAppPackage` | String | ID del paquete de la aplicación a configurar como launcher predeterminado. | No (puede ser null) |
| `launcherAppActivity` | String | Nombre de la clase de la Activity principal (Formato: `Package.Activity`). | No (puede ser null) |
| `enableStatusBar` | Boolean | Si es `false`, la barra de estado (superior) no se puede expandir. | **Sí** |
| `enableNavigationBar` | Boolean | Si es `false`, los botones de navegación (inferiores) están desactivados. | **Sí** |
| `showStatusBar` | Boolean | Si es `false`, la barra de estado se oculta de la pantalla. | **Sí** |
| `showNavigationBar` | Boolean | Si es `false`, la barra de navegación se oculta de la pantalla. | **Sí** |

## Aplicar la configuración

Utiliza el método `configTerminal` para aplicar las configuraciones definidas en el objeto `MSG8210`.

```java
// 1. Create and configure the settings object
MSG8210 config = new MSG8210();

// Set the default launcher (Optional)
config.launcherAppPackage = "com.mycompany.posapp";
config.launcherAppActivity = "com.mycompany.posapp.MainActivity";

// Configure UI restrictions (Mandatory)
config.enableStatusBar = false;   // Prevent pulling down notifications
config.enableNavigationBar = false; // Disable back/home/recent buttons
config.showStatusBar = false;     // Hide top bar
config.showNavigationBar = false; // Hide bottom bar

// 2. Apply configuration
manager.configTerminal(config, new ConfigCallback() {
    @Override
    public void onSuccess() {
        Log.d("KioskMode", "Terminal configured successfully.");
    }

    @Override
    public void onError(int errorCode) {
        Log.e("KioskMode", "Configuration failed. Code: " + errorCode);
    }
});
```

## Resolución de problemas de configuración

Si la configuración falla, el callback `onError` devolverá uno de los siguientes códigos:

| Código | Significado | Acción |
| :---- | :---- | :---- |
| **-1** | Error de configuración | Comprueba si los parámetros de tu `MSG8210` son válidos. |
| **-2** | No soportado | El modelo de terminal o la versión del SO no soportan estas configuraciones. |
| **-3** | Error de comunicación | Vuelve a intentar la operación. |
| **-99** | Indeterminado | Error desconocido. Comprueba los logs del sistema. |