Introducción
Esta documentación está dirigido a desarrolladores que necesitan acceder a los periféricos de un terminal de pago (impresora, cámara/escáner, lector de banda magnética, lector de hardware dedicado, información del equipo y señales sonoras) desde una aplicación propia, sin manipular directamente el hardware ni el SDK del fabricante.
El acceso se realiza a través de una biblioteca de contrato que se entrega como un único artefacto compilado. La aplicación integradora habla con un servicio que ya corre en el terminal mediante comunicación entre procesos (IPC) sobre AIDL. La aplicación integradora nunca ve ni compila el código de la implementación del hardware: solo conoce el contrato.
Qué recibe el implementador
- service-hal-interfaces (.aar): el contrato. Contiene las interfaces AIDL, los modelos de datos (parcelables), los enumerados y la clase puente HalBridge que gestiona la conexión.
- Este manual: explica cómo conectarse y cómo invocar cada componente, con ejemplos tomados de una aplicación de demostración funcional.
Modelo de integración. La aplicación integradora incluye únicamente el .aar de contrato. El servicio que controla el hardware vive dentro de la aplicación anfitriona (BCI Pagos) instalada en el terminal. Ambas se comunican por IPC.
Requisitos
| Requisito | Detalle |
|---|---|
| Terminal | Equipo PAX con la aplicación anfitriona BCI Pagos instalada y en ejecución. |
| minSdk | 25 (Android 7.1) o superior. |
| Java / Kotlin | Compatible con Java 17. Kotlin recomendado para el uso de corrutinas en los ejemplos. |
| Dependencia | El .aar de contrato declarado como implementation files(...). |
| Permisos | CAMERA en el manifiesto del integrador (lo exige el componente de cámara al proceso llamante). |
