IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Aide example Zxing (lecture BarreCode)


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut Aide example Zxing (lecture BarreCode)
    Bonjour,

    J essaie de mettre en œuvre le librairie ZXING pour réaliser un scanner de code barre*!
    Je développe avec Éclipse Luna
    J ai télécharger la librairie Zxing ici*: https://github.com/zxing/zxing
    J ai télécharger le fichier core.2,2 ici*: http://mvnrepository.com/artifact/co...zxing/core/2.2

    J ai suivit se tuto afin d essayer de la faire fonctionner*:

    http://karanbalkar.com/2013/12/tutor...ng-in-android/

    J aimerai lancer cette application sur un Android 4,2,2 .. mais cela n est pas actuellement un impératif ..
    Pour plus de facilité et d après ce que j ai pu lire, j ai opter dans un premier temps pour Android 5,1,1 que je virtualise avec Genymotion

    Donc clic droit sur le projet > propriété>Android> Android 5,1,1 / API-22

    J ai intégrer ZXING*:
    File>import .. > Android>Existing Android Code Into Workspace
    je selectionne Zxing-Master et je n importe que*: Android – CaptureActivity
    Je coche la case*: «*copy projects into workspace*»
    Une fois la librairie importer, clic droit sur le repertoire ..
    Properties>Android ..
    Je selectionne Android 5,1,1 et je coche «*Is Library*»

    Je copie Core 2,2
    Je crée un repertoire «*libs*» dans le projet ET dans le répertoire CaptureActivity
    J y copie le fichier core2,2.jar
    Ensuite clic droit sur le dossier projet>properties>Java Build Path>Add External JARs ..
    je sélectionne le fichier core2,2.jar

    J ai également intégrer "AppCompat_V7"

    J ai également tester d autres codes sources tel que*:

    http://www.developpez.net/forums/d15...barre-android/

    Le résultat est*:
    En suivant le tuto, j obtient une Activité avec un bouton «*Scan*» mais quand je clic sur celui-ci l application crash

    En intégrant le code trouver sur le forum de Developpez.NET, j ai des erreur au niveaux de l import de R.
    Si je lui dit d importer lenom.demonpackage.R, j ai l erreur*:
    «*Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/google/zxing/BarcodeFormat; BarCodeScanner Unknown Android Packaging Problem*»

    Et si je lui importe le fichier R de Android*: android.R

    j obtiens une activité vide ..

    Je suis débutant sous éclipse et avec le langage JAVA, svp soyez indulgant ..
    Mon but étant dans un premier tant de savoir utiliser la librairie ZXING afin de récupérer le "code texte" du "code barre" afin de me référer a une base de donnée ou de l y insérer*!

    Merci d avance a vous ...

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    RE ..
    J ai réussi a implémenter la librairie ZXING

    Voici le code utiliser ..

    MainActivity.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    package com.test.apptest;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
     
    import com.google.zxing.integration.android.IntentIntegrator;
    import com.google.zxing.integration.android.IntentResult;
    import com.test.apptest.R;
     
    public class MainActivity extends Activity implements OnClickListener{
     
    	  Button vbtScan = null;
    	  TextView texte = null;
     
     
    	  @Override
    	  public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
     
     
    	    setContentView(R.layout.activity_main);
     
    	    // fixation de variables aux elements
    	    vbtScan = (Button) findViewById(R.id.btScan);
    	    texte = (TextView)findViewById(R.id.textView);
     
     
    	    vbtScan.setOnClickListener(new View.OnClickListener()
    	    {
     
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				// code qui sera executer lors d'un click sur le bouton "btScan"
    				// Initialisation du scan
    		        IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
    		        integrator.initiateScan();
    				// changement du texte dans la variable "textView" (TextView: objet)
    				texte.setText("Go go go !!");
     
    			}
     
     
    	    });
    	  }
     
     
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
     
    	}
     
        public void onActivityResult(int requestCode, int resultCode, Intent intent) {
            IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
            if (scanResult != null) {
                String re = scanResult.getContents();
                Log.d("code", re);
            }
            // else continue with any other code you need in the method
     
        }
     
    }
    activity_main.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <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="com.pvcbien.apptest.MainActivity" >
     
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
     
        <Button
            android:id="@+id/btScan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="55dp"
            android:text="Click" />
     
    </RelativeLayout>
    Petite question a laquelle je n ai pas vu de réponses, sinon négatives ..
    Il y a t-il une méthode pour utiliser la librairie ZXING en l intégrant a mon application sans devoir faire appel a l application "Barcode Scanner" pour le scanne de code barre proprement dit ?

    Merci.

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Alors... oui et non.....

    1. Dans la solution que tu donnes, tu n'utilises pas la librairie ZXing directement, mais un "helper" pour utiliser barcode scanner de zxing (qui est une appli google hein !)

    2. L'intégrer à l'application revient à faire ce que fait justement l'application ZXing. Dans ce cas il faut utiliser la librairie complète (récupérée sur github probablement: https://github.com/zxing/zxing), et la rajouter au projet.
    Ensuite, ne plus passer par des Intent, mais capturer les images du capteur photo soit-même, et passer le résultat à la librairie ZXing pour traitement.
    Non seulement cela risque d'être nettement plus compliqué mais:

    3. Ce n'est vraiment pas la philosophie d'Android. Dans Android:
    Une application a besoin de prendre une photo ? Elle utilise un intent.
    Une application a besoin d'un code-bar / code ? Elle utilise un intent.
    etc...

    L'intérêt de cela, est que si demain, je décide de remplacer le software de prise de photo par un autre, il sera disponible *aussi* dans cette application qui a besoin de prendre une photo.
    Si un bug est corrigé sur ZXing... il sera corrigé dans barcode scanner, et sera donc corrigé pour *toutes* les applications ayant besoin de lire des codes barre ou qrcode

    C'est pour cette raison qu'une "application" android, n'est finalement qu'une liste d'activités proposées à l'utilisateur. Et rares sont les applications qui n'ont qu'un seul et unique point d'entrée (le Category.MAIN / LAUNCHER)
    Dans le meilleur des mondes, lancer l'application "Clash Of Clan" se ferait en demandant au système de lancer "une guerre de clans" (libre à moi d'installer *autre chose* que clash of clan si je veux).

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    Bonjour,

    Un grand merci pour ces précisions !
    Je continuerai donc a utiliser les "Intents" de la librairie ZXING car après tout les points exposés cela est bien plus avantageux. On ne va pas réinventer la roue tant que ça tourne
    De plus autant adopter la philosophie du domaine et de la technologie pour lesquels on développe.

    @ très bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Example ou lecture pour débuter en 3 couches
    Par FDR2006 dans le forum Débuter
    Réponses: 2
    Dernier message: 05/08/2011, 01h33
  2. Example ou lecture pour débuter en 3 couches
    Par FDR2006 dans le forum Sharpdevelop
    Réponses: 0
    Dernier message: 15/07/2011, 00h39
  3. Aide pour la lecture d'un .txt
    Par Julienlali dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/03/2011, 08h47
  4. Réponses: 3
    Dernier message: 17/02/2011, 11h08
  5. Réponses: 2
    Dernier message: 27/02/2003, 01h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo