PROSSIMO EVENTO: Security Exhibition & Conference (Stand C57) - ICC Sydney, Darling Harbour - Luglio 24-26, 2019

il nostro blog

Barcode Crossing

Barcoding su Android

zxing_zebra_logo
La maggior parte delle volte in cui i dipendenti di Telaeris pubblicano qui, è per esempi di vita reale relativi ai nostri prodotti. Questo ci consente di discutere un'ampia area di argomenti, inclusi codici a barre e utilizzo di RFID, implementazione di sistemi di sicurezza o di sicurezza o suggerimenti per la gestione di un'impresa. Ma il cuore di ciò che facciamo è quello di venire fuori soluzioni pulite per problemi complessi. I prossimi post di blog sono esempi di come due stagisti di Telaeris hanno iniziato a creare un nuovo prodotto mobile gratuito per il monitoraggio di codici a barre e tag RFID dal tuo dispositivo mobile Android o iPhone. Il sistema è chiamato DataLockr ed è appena stato lanciato: ti consiglio vivamente di dare un'occhiata all'app e al sistema. Quello che descrivono in questo articolo sono i primi passi su come costruire una semplice applicazione per la lettura di codici a barre usando la libreria Zxing open source per Android.

Questo blog è per gli hacker là fuori che amano codificare. Godere!

Implementazione di una libreria Zxing semplificata
Mentre stavamo attraversando il processo di apprendimento dell'uso del ZXing biblioteca, abbiamo presto scoperto che era un po 'fastidioso cercare di capire cosa stava succedendo in questa enorme biblioteca. C'erano molti tutorial là fuori, ma molti dei passi ci confondevano o erano obsoleti. C'erano cose che mancavano dal codice, o cose che erano diverse in base alla versione della libreria o qualcosa non era completamente chiarito. Volevamo creare un tutorial che aiutasse chiunque a provare a implementare una semplice libreria di scansione Zxing a iniziare rapidamente a utilizzarlo all'interno della propria applicazione.

Questo tutorial utilizza una versione ridotta della libreria Zxing per insegnare le basi su come implementare la libreria in un'app standalone e distribuire la propria app Android nativa. Stiamo utilizzando il kit di sviluppo Android con SDK 19, libreria Android 4.4. La libreria è stata modificata per essere uno scanner di codici a barre in modalità verticale piuttosto che l'orientamento orizzontale predefinito.

Puoi scaricare la nostra versione semplificata della libreria Zxing per usarla e testare qui: CaptureActivity. Questo è diverso dalla libreria ZXing rilasciata, ma è buono per iniziare.

Se non hai Eclipse con Android SDK, scarica e installa il file Kit di sviluppo Android. Apri l'SDK di Android e installa i componenti necessari. Quindi, apri Eclipse.

Passo 1. Per prima cosa creeremo il progetto.

Vai al menu principale File -> nuovo -> Progetto applicazione Android. Dai un nome al tuo progetto (abbiamo chiamato la nostra "Scanner App"). Copia le impostazioni di seguito e fai clic sui prossimi 3 volte alla pagina Crea attività. Scegli Svuota attività e fai clic su Avanti quindi su Fine. La cartella apparirà sul lato sinistro dello schermo per impostazione predefinita. In caso contrario, fare clic sul pulsante di ingrandimento per aprire la schermata del progetto in Eclipse.

Barcode Crossing

Passo 2. Correggi gli errori del tema (se non ne hai nessuno, vai al passaggio 3)

Se si verificano errori nelle cartelle dei valori, potrebbe trattarsi di un problema di Eclipse. Apri tutte le pagine style.xml ed elimina tutti i tag di stile e il suo contenuto. Vai anche al tuo AndroidManifest.xml ed elimina Android: theme = "@ style / AppTheme" sotto l'applicazione.

Passo 3. La prossima è di importare la libreria dello scanner.

Se non lo hai ancora fatto, scarica la zip CaptureActivty sopra. Vai a File -> Importa -> Importa codice Android esistente nell'area di lavoro -> e apri il browse e trova il codice sorgente Zxing che hai scaricato. Controlla solo il primo progetto chiamato CaptureActivity. Il percorso non dovrebbe contenere build / in esso. Fare clic su Fine. Fare clic destro del / CaptureActivity / Cartella nella scheda Explorer pacchetto e fare clic proprietà -> Android e assicurarsi che la casella di controllo "Is Library" sia selezionata. Clicca ok.

Passo 4. Ora dobbiamo connettere la nostra app con la libreria dello scanner.

Fare clic con il pulsante destro del mouse sulla cartella dell'app Android e quindi fare clic su proprietà -> Android. Fare clic sul pulsante Aggiungi e fare clic su CaptureActivity. Assicurati che venga visualizzato un segno di spunta verde dopo aver fatto clic su OK sullo schermo di Android con il progetto Scanner. Clicca ok.

Passo 5. Ora possiamo iniziare a implementare lo scanner nella nostra applicazione. Inizia con il file mainActivity.java.

Nella cartella dell'app, vai a / Src / cartella e apri il tuo mainActivity.java file. Di seguito è il codice necessario. Copia e incolla ciò che non hai. Il codice che dovrai aggiungere sarà in testo rosso. Se ricevi errori, dovrai importare alcune classi. puoi semplicemente premere ctrl + MAIUS + O e tutte le importazioni necessarie verranno importate.



pacchetto com.example.scannerapp; importare android.app.Activity; import android.content.Intent; importare android.os.Bundle; importare android.view.Menu; importa android.view.View; importare android.widget.Toast; public class MainActivity estende Activity {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (Menu menu) {// Gonfia il menu; questo aggiunge elementi alla barra delle azioni se è presente. getMenuInflater (). inflate (R.menu.main, menu); ritorna vero; } p pubblico vuoto openScanner (Visualizza vista) {Intent intent = new Intent ("com.example.scannerapp.SCAN"); startActivityForResult (intent, 0000); } public void onActivityResult (int requestCode, int resultCode, Intent intent) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (questo, contenuti, 0) .Show (); } else if (resultCode == RESULT_CANCELED) {// Handle cancel}}} } 

Ci sono due funzioni chiave qui:

  1. Il metodo openScanner viene eseguito quando si preme un pulsante e successivamente si apre lo scanner.
  2. Il metodo onActivityResult restituisce la stringa del codice a barre letto. Da qui, puoi aprire un nuovo intent e passare le variabili se vuoi visualizzare un altro schermo dopo la scansione.

Passo 6. Ora cambiamo il layout nel file activity_main.xml.

Ora nel tuo / App / cartella, vai al cartella res -> layout -> file activity_main.xml. Dovrebbe apparire come il seguente. Aggiungi il seguente codice rosso:


<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: paddingBottom = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical_margin" tools: context = ". MainActivity "> <Pulsante android: id =" @ + id / button0000 "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: layout_below =" @ + id / textView0000 "android: layout_centerHorizontal =" true "android: layout_marginTop = "1dp" android: text = "Scan" android: onClick = "openScanner" /> </ RelativeLayout>

Questo aggiunge un pulsante e, se premuto, eseguirà il metodo openScanner dal mainActivity.java file. Potrebbe anche essere necessario scegliere un tema. Ho scelto Theme.holo.

Passo 7. L'ultima modifica è modificare il file androidManifest.xml.

Vai AndroidManifest.xml file sotto la directory del progetto. Il codice dovrebbe apparire come segue e copiare nuovamente il codice rosso



<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.scannerapp" android : versionCode = "1" android: versionName = "1.0"> <uses-sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - PERMESSI RICHIESTI DA ZXING -> <uses-permission android : name = "android.permission.CAMERA" /> <uses-permission android: name = "android.permission.INTERNET" /> <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! - CARATTERISTICHE RICHIESTE DA ZXING -> <uses-feature android: name = "android.hardware.camera" android: required = "true" /> <uses-feature android: name = "android.hardware.touchscreen" android: richiesto = "false" /> <uses-feature android: name = "android.hardware.telephony" android: required = "false" /> <application android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: label = "@ string / nome_app" android: theme = "@ style / AppTheme"> <activity android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / nome_app "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <categoria android: name =" android.intent.category.LAUNCHER " /> </ intent-filter> </ activity> <activity android: name = "com.telaeris.datalockrScanner.android.CaptureActivity" android: screenOrientation = "portrait" android: configChanges = "orientation | keyboardHidden" android: theme = " @android: style / Theme.NoTitleBar.Fullscreen "android: windowSoftInputMode =" stateAlwaysHidden "> <intent-filter> <action android: name =" android.intent.category.MAIN "/> <categoria android: name =" android. intent.category.LAUNCHER "/> </ intent-filter> <intent-filter> <action android: name =" com.example.scannerapp.SCAN "/> <categoria android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

Stiamo aggiungendo le autorizzazioni che Android richiede per utilizzare la fotocamera e le attività incluse nell'applicazione per sapere quali file aprire quando vogliamo aprire lo scanner sul dispositivo.

Passo 8. Tutto fatto!

Ora dovresti essere in grado di compilare ed eseguire la tua applicazione su un dispositivo. Se ci sono errori del compilatore, si consiglia di pulire il progetto e / o riavviare eclissi.


Grazie
Questo blog deve grande grazie a molte persone:

  • Alberto Landaverde, che è stato internato con l'estate di Telaeris di 2012, che ha modificato la libreria Zxing e ha costruito la libreria semplificata iniziale
  • Kelly Lim, attuale stagista di Telaeris, che ha preso questa libreria e si è spostata oltre per costruire il DataLockr App per Android Kelly ha anche scritto il contenuto di questo blog.
  • Jake Pham, attuale stagista di Telaeris, che ha seguito il tutorial per assicurarsi che tutto funzionasse come pubblicizzato.

Restate sintonizzati per la prossima puntata in cui discutiamo su come effettuare la scansione della libreria ZXing in modalità verticale e orizzontale. E se hai tempo, dai un'occhiata al prodotto di tutti i loro sforzi - DataLockr.

DataLockrLogo
Essere visto. Essere scansionato Essere condivisi

Lascia un commento

*

Newsletter


parlare con un rappresentante

Contattaci

Telefono: 858-627-9700
Fax: 858-627-9702
-------------------------------
9123 Chesapeake Dr.
San Diego, CA 92123
-------------------------------
sales@telaeris.com