Intro I’m a newbie in the Linux world but this dotfiles thing it’s AWESOME. So, as the law says, one must create a...
IntentIntegrator do Barcode Scanner – Android
Isto é um memorando para mim mesmo para não me esquecer disto, é importante. Se não programas em Android pára já de ler e não percas tempo com isto, existem coisas mais porreiras para fazer 🙂
Estou a usar no projecto [email protected] o IntentIntegrator da ZXing, basicamente permite usar a leitura dos códigos de barras dos produtos, mas precisei de colocar uma referência na chamada deste integrador para conseguir escolher caminhos lógicos consoante a interacção do utilizador.
Pedi ajuda no fórum da aplicação e obtive resposta do Sean Owen, o programador desta aplicação, a sugestão dele foi alterar a classe base, foi o que fiz e foi desta forma.
Criei uma variável privada dentro do IntentIntegrator.java, a seguir à linha 127:
private int request_code;
Depois tive de alterar o construtor desta classe para que permitisse receber um código, linha 134:
public IntentIntegrator(Activity activity,int request_code) {
Por fim alterei o inicio da actividade para levar o código que pretendo e seja recebido no onActivityResult, linha 240:
activity.
Na actividade que vai receber o resultado do Scan, na onActivityResult terá de estar algo do género:
public void onActivityResult(int requestCode, int resultCode, Intent intent){ //Novo Preço if (requestCode == 0) { if (resultCode == RESULT_OK) { [CÓDIGO] String resultado = intent.getStringExtra("SCAN_RESULT"); } } if (requestCode == 1) { if (resultCode == RESULT_OK) { [CÓDIGO] String resultado = intent.getStringExtra("SCAN_RESULT"); } } }
Simples e eficaz 🙂