# 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](/es/pos-manufacturers/reference-pos-mfg/service-interfaces) 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](/es/pos-manufacturers/reference-pos-mfg/service-interfaces) 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](/es/pos-manufacturers/core-concept-pos-mfg/emv-state-machine).

## Paso 3: Coincidir con el Intent de vinculación

La Middleware App se vincula a tu servicio con este Intent:

```kotlin
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í:

```kotlin
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](/es/pos-manufacturers/first-steps-pos-mfg/quick-start-devkit) — valida tu implementación con las herramientas de prueba de Getnet.
* [Arquitectura HAL](/es/pos-manufacturers/core-concept-pos-mfg/hal-architecture) — cómo encaja esta conexión en el resto de la plataforma.
* [Referencia de interfaces de servicio](/es/pos-manufacturers/reference-pos-mfg/service-interfaces) — firmas completas de métodos para todas las interfaces.