Configuración de la integración HAL
Esta guía cubre las tres cosas que tu Manufacturer Service App necesita antes de que la Middleware App pueda vincularse a ella. Necesitas el nombre de paquete correcto, las interfaces requeridas y una declaración de servicio que coincida con el Intent de vinculación.
Antes de empezar
Consigue libhalservice.aar de Getnet. Contiene las interfaces AIDL que implementas: consulta la referencia de interfaces de servicio para ver la lista completa antes de comenzar.
Paso 1: Nombrar el paquete de tu servicio
La Middleware App solo se vincula a un servicio llamado com.pagonxt.hal.platform.service. Usa este nombre exacto para tu Manufacturer Service App.
Paso 2: Implementar las interfaces requeridas
libhalservice.aar define una interfaz por área de hardware. Implementa las que tu dispositivo soporte:
| Interfaz | Cubre |
|---|---|
IMainService | El punto de entrada. Expone todas las demás interfaces de abajo. |
ICardService | Lecturas de tarjeta por chip, banda magnética y NFC. |
IMifareService | Lecturas de tarjeta Mifare y operaciones de sector/bloque. |
IPrinterService | Impresión de recibos. |
IBeeperService | Retroalimentación sonora. |
ILedService | LED de estado. |
ICameraService | Cámara del dispositivo. |
IStatService | Estadísticas de uso, por aplicación y a nivel de dispositivo. |
IInfoService | Identificación del dispositivo (número de serie, IMEI, modelo). |
libhalservice.aar también declara un import de IInitService, junto a las interfaces anteriores. El kit de fabricante de Getnet todavía no documenta sus métodos: trátalo como reservado hasta que Getnet publique su contrato.
Consulta la referencia de interfaces de servicio para ver todas las firmas de métodos, incluidas las interfaces de mantenimiento y de cifrado. También documenta la interfaz EMV que usa la máquina de estados EMV.
Paso 3: Coincidir con el Intent de vinculación
La Middleware App se vincula a tu servicio con este Intent:
intent.action = "com.pagonxt.hal.platform.service"
intent.setPackage("com.pagonxt.hal.platform")Declara el intent filter de tu servicio para que coincida con esta acción y este paquete, de modo que la vinculación tenga éxito. Una vez vinculada, la Middleware App obtiene tu implementación de IMainService así:
mainService = com.pagonxt.hal.platform.service.IMainService.Stub.asInterface(binder)Todas las llamadas que tu servicio recibe después — mainService.getCard(), mainService.getPrinter(), y así sucesivamente — pasan por esta misma conexión.
Verificar la integración
Confirma que tu servicio es vinculable y que todas las interfaces implementadas responden correctamente antes de pasar al Devkit.
| Comprobación | Qué esperar |
|---|---|
| Nombre de paquete | El manifiesto de tu servicio declara com.pagonxt.hal.platform.service. |
| Vinculación | La vinculación de la Middleware App tiene éxito y devuelve un stub IMainService válido. |
| Cobertura de interfaces | Todas las interfaces que tu dispositivo soporta (ver Paso 2) devuelven una implementación funcional, no null. |
Próximos pasos
- Inicio rápido: ejecutar el Devkit — valida tu implementación con las herramientas de prueba de Getnet.
- Arquitectura HAL — cómo encaja esta conexión en el resto de la plataforma.
- Referencia de interfaces de servicio — firmas completas de métodos para todas las interfaces.