Getnet DocsGetnet Docs

Visão Geral do Get Smart PeripheralsLib

PeripheralsLib é uma biblioteca Android projetada para facilitar a interação entre aplicativos Android e o hardware de Ponto de Venda (PDV). Ela fornece uma interface unificada para controlar periféricos específicos em dispositivos TPV-Android, como impressoras térmicas, leitores de tarja magnética e leitores de código de barras profissionais.

Este guia apresenta os principais conceitos, arquitetura e recursos da PeripheralsLib para ajudar você a entender como ela se integra às suas soluções de pagamento ou varejo.

Propósito e Escopo

O principal objetivo da PeripheralsLib é abstrair as complexidades da comunicação de hardware de baixo nível. Em vez de escrever comandos brutos para os drivers do dispositivo, você interage com objetos e métodos Java de alto nível.

Esta biblioteca é especificamente adaptada para:

  • Impressão: Envio de imagens bitmap para a impressora térmica do dispositivo.
  • Captura de Dados: Leitura de cartões de saúde (tarja magnética) e escaneamento de códigos de barras usando leitores de hardware profissionais.
  • Gerenciamento de Dispositivos: Configuração de modos quiosque, como bloqueio de barras de navegação ou definição de launchers padrão.

Arquitetura Principal

A PeripheralsLib opera em um padrão Manager-Callback. Isso garante que seu aplicativo permaneça responsivo enquanto as operações de hardware — que podem ser demoradas — são executadas de forma assíncrona.

O PeripheralsManager

A classe PeripheralsManager é o ponto de entrada central para todas as operações da biblioteca. Ela atua como uma ponte no estilo singleton entre o contexto do seu aplicativo e o hardware do dispositivo.

  • Inicialização: Você instancia o manager uma vez, passando o Context do aplicativo. Isso estabelece automaticamente a conexão com o hardware do terminal subjacente.
  • Escopo: Todas as requisições de hardware (impressão, escaneamento, configuração) são roteadas através desta única instância.

Callbacks Assíncronos

A maioria das operações de hardware na PeripheralsLib é assíncrona. Quando você solicita uma ação, como imprimir um recibo ou aguardar o escaneamento de um código de barras, você deve fornecer uma implementação de Callback.

A biblioteca usa interfaces de callback específicas para diferentes operações:

  • PrintBmpCallback: Lida com os estados de sucesso ou erro para trabalhos de impressão.
  • MagReadCallback: Retorna dados da tarja magnética (Trilha 1 e Trilha 2) ou erros.
  • BarcodeCallback: Retorna dados do código de barras escaneado ou erros.
  • ConfigCallback: Confirma o sucesso ou a falha nas alterações de configuração do sistema.

Esse padrão garante que a thread de UI não seja bloqueada enquanto o dispositivo inicializa a impressora ou aguarda que o usuário passe um cartão.

Principais Recursos

1. Impressão Térmica

A biblioteca suporta a impressão de imagens no formato Bitmap. Para garantir uma saída consistente em diferentes modelos de terminal, a biblioteca depende de padrões de imagem específicos (por exemplo, largura máxima de 390px, esquema de cores em preto e branco, compressão JPEG).

2. Leitura de Cartão de Saúde

A PeripheralsLib inclui uma lógica especializada para Cartões de Saúde. Ao contrário dos leitores de tarja magnética genéricos, a função magStripeRead analisa trilhas específicas (Trilha 1 e Trilha 2) para identificar se o cartão passado é um cartão de saúde válido.

3. Leitura Profissional de Código de Barras

Para dispositivos equipados com um leitor a laser profissional dedicado (baseado em hardware), a biblioteca fornece uma interface direta para acionar o leitor e recuperar os dados.

Este recurso é voltado para dispositivos com leitores profissionais integrados. Ele não controla a câmera padrão do dispositivo.

4. Configuração de Quiosque do Terminal

Para ambientes de negócios dedicados, a PeripheralsLib permite bloquear programaticamente a interface do Android. Isso inclui:

  • Barra de Status e Barra de Navegação: Ocultar ou desativar as barras do sistema para impedir que os usuários saiam do aplicativo ou alterem as configurações.
  • Configuração do Launcher: Definir um pacote de aplicativo e uma activity específicos como a tela inicial padrão (Launcher).

Requisitos do Sistema

A PeripheralsLib é compatível com projetos do Android Studio.

Suporte ao Android 12

A partir da versão 1.0.6, a biblioteca inclui suporte específico para o Android 12 e superior. Devido às mudanças de segurança nas versões mais recentes do Android, permissões específicas (QUERY_ALL_PACKAGES) devem ser declaradas no manifest do seu aplicativo para permitir que a biblioteca interaja corretamente com os serviços do sistema.