notre blog

Traversée de codes à barres

Code à barres sur 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 des solutions soignées pour des problèmes épineux. 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!

Implémentation d'une bibliothèque Zxing simplifiée
Pendant que nous allions apprendre à utiliser le logiciel Zxing bibliothèque, nous avons vite découvert que c’était un peu gênant d’essayer de comprendre ce qui se passait dans cette immense bibliothèque. Il y avait beaucoup de tutoriels là-bas, mais beaucoup d'étapes nous ont déroutés ou étaient obsolètes. Il manquait des éléments dans le code ou des éléments différents en fonction de la version de la bibliothèque ou des éléments non clarifiés. Nous voulions créer un didacticiel qui aiderait tous ceux qui tentent de mettre en œuvre une bibliothèque de numérisation Zxing simple à commencer à l’utiliser au sein de leur propre application.

Ce tutoriel utilise une version démolie de la bibliothèque Zxing pour enseigner les bases de la mise en œuvre de la bibliothèque dans une application autonome et le déploiement de votre propre application Android native. Nous utilisons le kit de développement Android utilisant le SDK 19, la bibliothèque Android 4.4. La bibliothèque a été modifiée pour devenir un lecteur de codes à barres en mode portrait plutôt que l'orientation horizontale par défaut.

Vous pouvez télécharger notre version simplifiée de la bibliothèque Zxing à utiliser et à tester ici: CaptureActivity. Ceci est différent de la bibliothèque ZXing publiée, mais il est bon de vous aider à démarrer.

Si vous n’avez pas Eclipse avec le SDK Android, téléchargez et installez le Kit de développement Android. Ouvrez le SDK Android et installez les composants nécessaires. Ensuite, ouvrez Eclipse.

Étape 1. Nous allons d'abord créer le projet.

Aller au menu du haut Fichier -> Nouveau -> Projet d'application Android. Nommez votre projet (nous avons appelé notre «application scanner»). Copiez les paramètres ci-dessous et cliquez sur les heures 3 suivantes jusqu'à la page de création d'activité. Choisissez Activité vide et cliquez sur Suivant puis sur Terminer. Le dossier apparaîtra sur le côté gauche de l'écran par défaut. Sinon, cliquez sur le bouton Agrandir pour ouvrir l'écran de projet dans Eclipse.

Traversée de codes à barres

Étape 2. Corrigez les erreurs de thème (si vous n'en avez pas, passez à l'étape 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.

Étape 3. Suivant consiste à importer la bibliothèque de scanner.

Si vous ne l'avez pas encore fait, téléchargez le fichier zip de CaptureActivty ci-dessus. Aller à Fichier -> Importer -> Importer le code Android existant dans Workspace -> et ouvrir parcourir et trouvez le code source Zxing que vous avez téléchargé. Cochez uniquement le premier projet appelé CaptureActivity. Le chemin ne doit pas contenir build / in it. Click finish. Clic droit sur le / CaptureActivity / Dossier dans l'onglet Explorateur de packages et cliquez sur propriétés -> Android and make sure the “Is Library” check box checked. Click ok.

Étape 4. Nous devons maintenant connecter notre application à la bibliothèque de scanners.

Cliquez avec le bouton droit sur le dossier de votre application Android, puis cliquez sur propriétés -> Android. Cliquez sur le bouton Ajouter, puis sur CaptureActivity. Assurez-vous qu'une coche verte apparaît après que vous avez cliqué sur OK sur l'écran Android avec le scanner de projet. Cliquez sur OK.

Étape 5. Nous pouvons maintenant commencer à implémenter le scanner dans notre application. Commencez avec le fichier mainActivity.java.

Dans votre dossier d'applications, accédez à / src / dossier et ouvrez votre mainActivity.java fichier. Vous trouverez ci-dessous le code nécessaire. Copiez et collez ce que vous n'avez pas. Le code que vous devrez ajouter sera en texte rouge. Si vous obtenez des erreurs, vous devrez importer certaines classes. vous pouvez simplement appuyer sur Ctrl + Maj + O, et toutes les importations nécessaires seront importées.



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
         }
      }
   }
} 

Il y a deux fonctions clés ici:

  1. La méthode openScanner s'exécute lorsqu'un bouton est enfoncé et ouvre ensuite le scanner.
  2. La méthode onActivityResult renvoie la chaîne du code à barres lu. À partir de là, vous pouvez ouvrir une nouvelle intention et transmettre des variables si vous souhaitez afficher un autre écran après votre analyse.

Étape 6.Nous allons maintenant modifier la disposition dans le fichier activity_main.xml.

Maintenant dans votre / app / dossier, allez à dossier res -> mise en page -> fichier activity_main.xml. Cela devrait ressembler à ce qui suit. Ajoutez le code rouge suivant:


<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>

Ceci ajoute un bouton et, une fois appuyé, lancera la méthode openScanner à partir du mainActivity.java fichier. Vous devrez peut-être aussi choisir un thème. J'ai choisi Theme.holo.

Étape 7. La dernière modification consiste à modifier le fichier androidManifest.xml.

Allez à la androidManifest.xml fichier sous le répertoire du projet. Le code doit ressembler à ce qui suit et copier à nouveau le code rouge



<?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>

Nous ajoutons les autorisations nécessaires à l’utilisation de l’appareil photo par Android, y compris des activités, pour savoir quels fichiers ouvrir lorsque nous voulons ouvrir le scanner sur l’appareil.

Étape 8. Terminé!

Vous devriez maintenant pouvoir compiler et exécuter votre application sur un périphérique. S'il y a des erreurs de compilation, vous pouvez vouloir nettoyer le projet et / ou redémarrer eclipse.


Merci
Ce blog doit beaucoup à beaucoup de gens:

  • Alberto Landaverde, qui a été stagiaire avec Telaeris l'été de 2012, qui a modifié la bibliothèque Zxing et construit la bibliothèque simplifiée initiale
  • Kelly Lim, current Telaeris intern, who took this library and moved beyond it to build the DataLockr App Android. Kelly a également écrit le contenu de ce blog.
  • Jake Pham, actuel stagiaire chez Telaeris, a suivi le tutoriel ici pour s'assurer que tout fonctionnait comme prévu.

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
Être vu. Être scanné. Être partagé.

Laisser un commentaire

*

Blog mises à jour

Newsletters


parler à un représentant

Contactez-Nous

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