[Android]Utilizando a biblioteca Zxing para leitura de QrCode em 3 minutos

Danielle Teixeira
Blog do LFDev
Published in
3 min readMay 29, 2020
fonte: Freepik

Em algum momento você pode precisar utilizar um leitor de qrcode em sua app, seja para pagamento, autenticação ou inscrição em um evento por exemplo, então como utilizar?

Antes de mais nada, existem outras bibliotecas destinadas a leitura de barcode e qrcode, mas optei pela Zxing, pois ela é bem utilizada na comunidade e está em constante atualização, significa que não vamos ficar na mão de uma hora pra outra, além do mais é open source e tem uma certa acurácia, sendo completa em scanner de imagens 1D e 2D.

Criando o projeto

Estou utilizando a versão 24 ou Android 7, o Nougat, atenção quanto às permissões de acesso que o Android solicita como utilização de câmera, necessárias para o correto funcionamento de um projeto com a ZXing. Salvo engano a partir do Android 6 Android Marshmallow, necessitam habilitar as permissões para garantir o funcionamento do app. Pode ser incluso no seu arquivo Manifest

<uses-permission Android:name="Android.permission.CAMERA" />

Bom, o repositório da Biblioteca para o qrcode que vamos utilizar pode ser visto aqui https://github.com/journeyapps/zxing-android-embedded

Adicionando as dependências no gradle

E podemos adicionar as dependências no gradle conforme orienta o próprio repositório da lib.

implementation 'com.journeyapps:zxing-android-embedded:4.1.0'
implementation 'androidx.appcompat:appcompat:1.0.2'

Adicione as dependências ao seu projeto, como no momento da escrita do artigo estou utilizando a versão da lib correspondente a 4.1.0:

E logo após sincronize o repositório para completar a instalação. A partir daí na nossa activity_main.xml vamos criar um botão e dar um Id a ele para capturar o Qrcode.

Podemos então setar o botão no MainActivity

btn_leitura.setOnClickListener {
val scanner = IntentIntegrator(this)
scanner.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
scanner.setBeepEnabled(false) //retira o beep ao scannear
scanner.initiateScan() // `this` is the current Activity
}

Criando a Activity da scan

Lendo o código de barras
Lendo o QrCode

Notem que o layout acaba por permanecendo na horizontal. Logo em seguida podemos alterar a orientação pra deixar no layout mais amigável.

Alterando a orientação

Para alterar a orientação, especifique a orientação no seu AndroidManifest.xmle deixe ManifestMergeratualizar a definição da Atividade. Agora sim com o screenOrientation:fullSensor e o replace:screenOrientation vamos poder ler apenas o Qrcode e no layout mais agradavel.

A biblioteca também permite que você gere QrCode, há outras funcionalidades para serem exploradas, mas não me ater a elas.

Achei bem tranquila de trabalhar, espero que tenham gostado da minha experiência com Zxing no Android Nativo. O código produzido pode ser obtido neste repositório: https://github.com/dannyserena/qrcodeapp

https://gdglauro.tech

--

--

Danielle Teixeira
Blog do LFDev

Desenvolvedora Mobile , Pesquisadora em IoT e Machine Learning, Organizer GDG Lauro de Freitas e Embaixadora Women Techmakers