martedì 28 febbraio 2012

Android tips #4 - Start Barcode activity in Eclipse enviroment

Vediamo come integrare il lettore di barcode nelle nostre applicazioni android utilizzando quanto già sviluppato nel progetto ZXing.
Scaricare la libreria ZXing-2.0.zip dal collegamento seguente: http://code.google.com/p/zxing/downloads/detail?name=ZXing-2.0.zip&can=2&q=
Aprire quindi il file e individuare la libreria core.jar; che sarà da aggiungere agli external jars del nostro progetto.


Nella nostra activity dove meglio preferite potete eseguire l'activity barcode con il seguente codice:

public final static String RC_BARCODE_READER = "1234";
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");       
startActivityForResult(intent, RC_BARCODE_READER);

Nella stessa activity occorre fare l'override del metodo onActivityResult:

public void onActivityResult(int requestCode, int resultCode, Intent intent)
{    
   if (requestCode == RC_BARCODE_READER )
   {        
       if (resultCode == RESULT_OK)
      {            
           String contents = intent.getStringExtra("SCAN_RESULT");            
           String format = intent.getStringExtra("SCAN_RESULT_FORMAT");   
           //.....
      } else if (resultCode == RESULT_CANCELED)
      {                  
         //.....
       }    
   }
}

Si può procedere anche diversamente in modo più agile utilizzando la classe IntentIntegrator.java fornita dalla stessa libreria (IntentIntegrator.java).
Per eseguire l'activity barcode basta incollare il seguente codice:


IntentIntegrator integrator = new IntentIntegrator(yourActivity);
integrator.initiateScan();

La gestione del risultato si demanda quindi sempre al metodo onActivityResult incollando all'interno quanto segue:


IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null)
{
    //Elaborazione del risultato

}

Per altri dettagli si rimanda al collegamento: Scanning via intent

Enjoy!


Nessun commento:

Posta un commento