il nostro blog

Barcode Crossing

Barcoding su Android

zxing_zebra_logo
Most of the time when employees at Telaeris publish here, it is for real life examples related to our products. This allows us to discuss a wide area of topics, including barcodes and RFID usage, security or safety system implementation or tips on running a business. But at the heart of what we do is to come up with soluzioni pulite per problemi complessi. The next few blog entries are examples of how two interns at Telaeris started to create a free new mobile product for tracking barcodes and RFID tags from your Android or iPhone mobile device. The system is called DataLockr and has just been launched – I highly recommend you check out the app and system. What they describe in this article are their first steps of how to build a simple barcode reading app using the open source Zxing library for Android.

This blog is for the hackers out there that like to code. Enjoy!

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)

If you are having errors in your values folders, this may be an Eclipse issue. Open all style.xml pages and delete all style tags and its contents. Also go to your AndroidManifest.xml and delete the android:theme=”@style/AppTheme” under application.

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. Click finish. Fare clic destro del / CaptureActivity / Cartella nella scheda Explorer pacchetto e fare clic proprietà -> Android and make sure the “Is Library” check box checked. Click 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.



package com.example.scannerapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
   public void openScanner(View view){
      Intent intent = new Intent("com.example.scannerapp.SCAN");
      startActivityForResult(intent, 0);
   }

   public void onActivityResult(int requestCode, int resultCode, Intent intent) {
      if (requestCode == 0) {
         if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            Toast.makeText(this,contents,3000).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.

Now in your / 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" >

    <Button
         android:id="@+id/button1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@+id/textView1"
         android:layout_centerHorizontal="true"
         android:layout_marginTop="159dp"
         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" />

 <!-- PERMISSIONS REQUIRED BY ZXING -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- FEATURES REQUIRED BY ZXING -->
    <uses-feature android:name="android.hardware.camera" android:required="true" />
    <uses-feature android:name="android.hardware.touchscreen"  android:required="false" />
    <uses-feature android:name="android.hardware.telephony"  android:required="false" />

<application
     android:allowBackup="true"
     android:icon="@drawable/ic_launcher"
     android:label="@string/app_name"
     android:theme="@style/AppTheme" >
     <activity
        android:name="com.example.scannerapp.MainActivity"
        android:label="@string/app_name" >
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category 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"/>
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>

       <intent-filter>
         <action android:name="com.example.scannerapp.SCAN"/>
         <category 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, current Telaeris intern, who took this library and moved beyond it to build the 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.

Stay tuned for the next installment where we discuss how to make the ZXing library scan in both portrait and landscape modes. And if you have time, take a look at the product of all of their effort – DataLockr.

DataLockrLogo
Essere visto. Essere scansionato Essere condivisi

Lascia un commento

*

Aggiornamenti del blog

Newsletter


parlare con un rappresentante

Contatti

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