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.