|
October 24, 2017
|

Criando leitor de QR Codes e Códigos de Barra no TotalCross

A leitura de códigos de barras e de Qr Codes é comprovadamente essencial dentro das empresas, principalmente em operações logísticas, warehouses e mais. Esse método otimizou processos como verificação de produtos, aumentando a velocidade e reduzindo as chances de erro para zero (ou quase isso). Além de controlar a entrada e a saída do produto no estoque. Os equipamentos mais comuns para esse tipo de processo são coletores de dados porém também é possível utilizar smartphones convencionais nesse tipo de operação.

Graças a diferentes tecnologias como Zxing e Scandit, agora é possível utilizar leitores de QR e bar code para smartphones. Seja ele android, IOS ou Windows Phone. E, como sempre, a TotalCross não fica de fora e por isso também oferecemos importação para estas bibliotecas. Então vamos ao código!

Criando um Leitor de QR Code e Código de Barras

É algo bem simples, podendo dividir a aplicação em três partes principais: o Layout, onde você vai precisar, no mínimo, de um Button para chamar o método. O Evento do Button, onde o método será chamado, chamando a câmera para o escaneamento e o armazenamento da leitura gerada para exibir ao usuário.

Mão na Massa

Iniciaremos criando uma classe chamada ScannerSample que herde da MainWindow. Dentro dela, vamos criar uma constante contendo a chave do Scandit. A chamaremos de SCANDIT_KEY.
Vamos precisar de MultiEdit e um PushButtonGroup, iremos chamá-los, respectivamente, de edtBarCode e pbg.
E já dentro do construtor iremos passar o tipo de borda, estilo e cor:

public ScannerSample() {
super("Scanner Sample", NO_BORDER);
setUIStyle(Settings.MATERIAL_UI);
Settings.uiAdjustmentsBasedOnFontHeight = true;
setBackForeColors(Color.getRGB(255, 255, 255), Color.getRGB(50, 50, 50));
}

Agora no initUI() iremos posicionar os elementos na tela:

public void initUI() {
   try {
      pbg = new PushButtonGroup(new String[] { "SCAN 1D ZXing",
       "SCAN 2D QR codes ZXing", "SCAN Scandit" }, fmH / 2, 3);
      add(pbg, LEFT+80, AFTER+50, FILL-100, 100);
      pbg.setBackForeColors(Color.getRGB(111, 186, 255), Color.WHITE);
      add(edtBarCode = new MultiEdit(2, 1), LEFT + 80, BOTTOM - 80, FILL - 80, PREFERRED);
      edtBarCode.setEditable(false);
      add(new Label("Result:"), LEFT + 80, BEFORE);
   } catch (Exception e) {
      MessageBox.showException(e, true); exit(0);
   }
}

Faremos também um Toast (Para ver mais exemplos usando Toast, clique aqui):

public void showToast(String message) {
   Toast.height = fmH * 3; Toast.posY = (int) (Control.BOTTOM-80);
   Toast.show(message, 2000);
}

Se você ainda não é familiarizado com o TotalCross e ficou meio perdido nessa parte, basta clicar aqui para aprender e treinar mais um pouco.

E no onEvent()…

É no evento do Button, como já falamos, que está o processo de chamar o método, guardar o valor retornado e exibi-lo depois, ou redirecionar, caso seja uma url.

public void onEvent(Event event) {
   switch (event.type) {
      case ControlEvent.PRESSED:
         if (event.target == pbg) {
          int sel = pbg.getSelectedIndex();
          String scan;
         if (sel == 2) {
          scan = Scanner.readBarcode("scandit:" + SCANDIT_KEY);
         }else{
          String mode = sel == 0 ? "1D" : sel == 1 ? "2D" : "";
          scan = Scanner.readBarcode("mode=" + mode + "&msg="
          + "Place a barcode inside the viewfinder rectangle to scan it");
         }
         if (scan != null){
          if(scan.contains("http")){
          Vm.exec("url", scan, 0, true);
          }else{
          edtBarCode.setText(scan);
          }
        }else{
          showToast("No barcode to read!");
         }
      }
      break;
   }
}

E Está pronto o seu Leitor de Código de Barras e de QR Codes!
Para ver o exemplo completo, basta ir ao nosso Github.



Com Totalcross e agora com o Scandit fica muito mais fácil implementar essa funcionalidade, que vem se provando cada vez mais necessária mercado a dentro.

O artigo foi útil? Aprendeu? Não esqueça de compartilhar com os amigos! E se tiver alguma dúvida, dica basta comentar conosco.

Comments

More articles

Pesquisa de mercado: Por que ela é importante para o desenvolvimento de apps?

November 19, 2018

Afinal, é possível criar app sem saber programação?

November 16, 2018

Como transformar um website em aplicativo?

November 14, 2018

Aplicativos: O que conhecer antes de criar um

November 13, 2018