tesinaTutorial lettore codici a barre (444081 byte)

Transcript

tesinaTutorial lettore codici a barre (444081 byte)
TUTORIAL LETTURA CODICI A BARRE
I codici a barre sono un insieme di elementi grafici a contrasto elevato disposti in modo da poter
essere letti da un sensore a scansione e decodificati per restituire l'informazione contenuta, nel caso
illustrato di seguito verranno letti dalla fotocamera dello smartphone.
Esistono due tipologie di codici a barre:
-Unidimensionali, comunemente utilizzati per identificare i prodotti venduti nei negozi. Sono
economicamente convenienti dato il basso costo di stampa di un’etichetta o addirittura
direttamente stampabili sulla confezione. I lettori di questi codici utilizzano uno o più raggi laser per
la lettura.
-Bidimensionali, utilizzati per storicizzare molte più informazioni rispetto ai precedenti, ma leggibili
solo da fotocamere.
E’ possibile quindi utilizzare uno smartphone android per effettuare la scansione di un codice a
barre, ed è presente al seguente indirizzo il codice di una libreria open source
https://github.com/zxing/zxing.
Vedremo di seguito come creare un’app per l’acquisizione di codici a barre:
Gradle
Utilizzando come ambiente di programmazione Android Studio è possibile aggiungere il codice
della libreria ZXing utilizzando Gradle, aggiungere al file build.gradle il seguente codice:
Manifest
-Aggiungiamo il seguente codice al file AndroidManifest.xml, necessario per ottenere i permessi di
utilizzo della fotocamera e per avviare l'activity che effettua la scansione in portrait:
CaptureActivity
-Creiamo una classe che estende l'activity di scansione dei codici a barre, in modo da personalizzare
l’orientamento della scansione tramite la modifica effettuata precedentemente nel manifest:
Layout
-Nell' activity_main.xml aggiungiamo un bottone che utilizzeremo per avviare la scansione, e una textview
per visualizzare il codice a barre scansionato:
Intent
-Implementiamo nella nostra app il seguente codice che crea un intent che ha come parametro
l'activity che scansiona il codice a barre (CaptureActivityAnyOrientation), inoltre viene passato come
messaggio all'activity la stringa “PRODUCT_MODE”, la quale limita la scansione ai soli codici a barre
unidimensionali:
OnActivityResult
-Ora implementiamo il seguente codice, che assegna alla variabile contents il valore restituito da
CaptureActivityAnyOrientation, ovvero il numero del codice a barre scansionato. Assegnamo alla
textview il valore della contenuto nella variabile contents:
OnCreate
Nel metodo onCreate creiamo un bottone e lo associamo al bottone presente nel layout, in
seguito creiamo un ClickListener che esegue la funzione Scan() quando viene premuto il bottone:
Applicazione in esecuzione: