# Configuração da integração HAL

Este guia cobre as três coisas de que sua Manufacturer Service App precisa antes de a Middleware App conseguir se vincular a ela. Você precisa do nome de pacote correto, das interfaces exigidas e de uma declaração de serviço que corresponda ao Intent de vinculação.

## Antes de começar

Obtenha o `libhalservice.aar` com a Getnet. Ele contém as interfaces AIDL que você implementa — consulte a [referência de interfaces de serviço](/pt/pos-manufacturers/reference-pos-mfg/service-interfaces) para ver a lista completa antes de começar.

## Etapa 1: Nomear o pacote do seu serviço

A Middleware App só se vincula a um serviço chamado `com.pagonxt.hal.platform.service`. Use exatamente esse nome para sua Manufacturer Service App.

## Etapa 2: Implementar as interfaces exigidas

O `libhalservice.aar` define uma interface por área de hardware. Implemente as que seu dispositivo suporta:

| Interface | Cobre |
| :--- | :--- |
| `IMainService` | O ponto de entrada. Expõe todas as demais interfaces abaixo. |
| `ICardService` | Leituras de cartão por chip, tarja magnética e NFC. |
| `IMifareService` | Leituras de cartão Mifare e operações de setor/bloco. |
| `IPrinterService` | Impressão de recibos. |
| `IBeeperService` | Retorno sonoro. |
| `ILedService` | LEDs de status. |
| `ICameraService` | Câmera do dispositivo. |
| `IStatService` | Estatísticas de uso, por aplicação e no dispositivo inteiro. |
| `IInfoService` | Identificação do dispositivo (número de série, IMEI, modelo). |

O `libhalservice.aar` também declara um import de `IInitService`, ao lado das interfaces acima. O kit de fabricante da Getnet ainda não documenta seus métodos — trate-o como reservado até a Getnet publicar o contrato dele.

Consulte a [referência de interfaces de serviço](/pt/pos-manufacturers/reference-pos-mfg/service-interfaces) para ver todas as assinaturas de método, incluindo as interfaces de manutenção e de criptografia. Ela também documenta a interface EMV usada pela [máquina de estados EMV](/pt/pos-manufacturers/core-concept-pos-mfg/emv-state-machine).

## Etapa 3: Corresponder ao Intent de vinculação

A Middleware App se vincula ao seu serviço com este Intent:

```kotlin
intent.action = "com.pagonxt.hal.platform.service"
intent.setPackage("com.pagonxt.hal.platform")
```

Declare o intent filter do seu serviço para corresponder a essa ação e a esse pacote, para que a vinculação tenha sucesso. Uma vez vinculada, a Middleware App obtém sua implementação de `IMainService` assim:

```kotlin
mainService = com.pagonxt.hal.platform.service.IMainService.Stub.asInterface(binder)
```

Todas as chamadas que seu serviço recebe depois — `mainService.getCard()`, `mainService.getPrinter()` e assim por diante — passam por essa mesma conexão.

## Verificar a integração

Confirme que seu serviço é vinculável e que todas as interfaces implementadas respondem corretamente antes de passar ao Devkit.

| Verificação | O que esperar |
| :--- | :--- |
| Nome de pacote | O manifesto do seu serviço declara `com.pagonxt.hal.platform.service`. |
| Vinculação | A vinculação da Middleware App tem sucesso e devolve um stub `IMainService` válido. |
| Cobertura de interfaces | Toda interface que seu dispositivo suporta (ver Etapa 2) devolve uma implementação funcional, não `null`. |

## Próximos passos

* [Início rápido: executar o Devkit](/pt/pos-manufacturers/first-steps-pos-mfg/quick-start-devkit) — valide sua implementação com as ferramentas de teste da Getnet.
* [Arquitetura HAL](/pt/pos-manufacturers/core-concept-pos-mfg/hal-architecture) — como essa conexão se encaixa no resto da plataforma.
* [Referência de interfaces de serviço](/pt/pos-manufacturers/reference-pos-mfg/service-interfaces) — assinaturas completas de método para todas as interfaces.