Verwenden von ZXing zum Erstellen einer Android-App zum Scannen von Barcodes [duplicate]

Lesezeit: 7 Minuten

Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
wajiw

Ich habe gesucht, wie ich meiner App einen Barcode-Scanner hinzufügen kann. Gibt es Beispiele oder wie kann ich das am einfachsten machen?

  • Überprüfen Sie meine detaillierte Antwort mit Screenshots und einer Beispiel-Android-App.

    – Alexander Farber

    2. Juni 2015 um 16:48 Uhr

  • ZXing ist nicht die einzige Möglichkeit, einen Barcode zu lesen. Ab 2016 ist es viel einfacher, die Android-Barcode-API zu verwenden.

    – Dan Dascalescu

    10. August 2016 um 22:17 Uhr


  • Ich habe Code für Barcode generiert und Barcode gescannt. Sie können dies befolgen, um den Schritt-für-Schritt-Code zu erhalten. stackoverflow.com/a/58742737/11613683

    – Pramesh Bhalala

    7. November 2019 um 6:19 Uhr

Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
Christoph Orr

Das ZXing-Projekt bietet eine eigenständige Anwendung zum Lesen von Barcodes, die – über den Absichtsmechanismus von Android – von anderen Anwendungen aufgerufen werden kann, die das Scannen von Barcodes integrieren möchten.

Der einfachste Weg, dies zu tun, ist, das ZXing anzurufen SCAN Intent aus Ihrer Bewerbung, so was:

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        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");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}

Drücken der mit verknüpften Schaltfläche mScan würde direkt in den Bildschirm des ZXing-Barcode-Scanners starten (oder abstürzen, wenn ZXing nicht installiert ist). Sobald ein Barcode erkannt wurde, erhalten Sie das Ergebnis in Ihrer Activityhier im contents Variable.

Um Abstürze zu vermeiden und die Dinge für Sie zu vereinfachen, hat ZXing eine Gebrauchsklasse bereitgestellt die Sie in Ihre Anwendung integrieren könnten, um die Installation von ZXing reibungsloser zu gestalten, indem Sie den Benutzer zum Android Market umleiten, wenn er es noch nicht installiert hat.

Wenn Sie schließlich das Scannen von Barcodes direkt in Ihre Anwendung integrieren möchten, ohne sich darauf verlassen zu müssen, dass die separate ZXing-Anwendung installiert ist, dann ist es ein Open-Source-Projekt, und Sie können dies tun! 🙂


Bearbeiten: Jemand hat diesen Leitfaden in diese Antwort bearbeitet (es klingt etwas seltsam, ich kann nicht für seine Genauigkeit bürgen, und ich bin mir nicht sicher, warum sie Eclipse im Jahr 2015 verwenden):

Schritt für Schritt zum Einrichten von zxing 3.2.1 in Eclipse

  1. Laden Sie zxing-master.zip von “https://github.com/zxing/zxing
  2. Entpacken Sie zxing-master.zip, verwenden Sie Eclipse, um das „Android“-Projekt in zxing-master zu importieren
  3. Laden Sie core-3.2.1.jar herunter von “http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/
  4. Erstellen Sie den Ordner „libs“ im Projekt „android“ und fügen Sie cor-3.2.1.jar in den Ordner „libs“ ein
  5. Klicken Sie auf Projekt: Wählen Sie “Eigenschaften” -> “Java Compiler”, um die Stufe auf 1.7 zu ändern. Klicken Sie dann auf „Android“, ändern Sie „Project build target“ auf Android 4.4.2+, da die Verwendung von 1.7 eine Kompilierung mit Android 4.4 erfordert
  6. Wenn „CameraConfigurationUtils.java“ nicht in „zxing-master/android/app/src/main/java/com/google/zxing/client/android/camera/“ vorhanden ist. Sie können es von „zxing-master/android-core/src/main/java/com/google/zxing/client/android/camera/“ kopieren und in Ihr Projekt einfügen.
  7. Projekt bereinigen und erstellen. Wenn Ihr Projekt einen Fehler zu “switch – case” anzeigt, sollten Sie sie in “if – else” ändern.
  8. Abgeschlossen. Projekt bereinigen und erstellen. Sie können auf „Eigenschaften“ > „Android“ klicken > auf „Ist Bibliotheken“ klicken, um sie für Ihr Projekt zu verwenden.

  • (Übrigens bin ich der Projektentwickler – wir können unter fortfahren groups.google.com/group/zxing) Christoph hat recht. Durch die Verwendung von Code wie diesem müssen Sie überhaupt keinen Projektcode importieren. Sie rufen die Barcode-Scanner-App über Intent an; kein Barcode-Scan-Code in Ihrer App.

    – Sean Owen

    13. Januar 2010 um 18:46 Uhr

  • Der wirklich nette Weg, dies zu tun, beinhaltet etwas mehr Code, der sicherstellt, dass der Benutzer bei Bedarf sauber aufgefordert wird, den Barcode-Scanner zu installieren. Das ist der andere Link, auf den er sich bezog. Kopieren Sie die Klasse unter code.google.com/p/zxing/source/browse/trunk/android-integration/… und benutze das. Auch hier ist kein weiterer Code erforderlich. Wenn Sie möchten, können Sie den ganzen Weg gehen und den Scan-Code einbetten, aber ohne einen triftigen Grund, es zu tun, ist es nur schwieriger für Sie.

    – Sean Owen

    13. Januar 2010 um 18:47 Uhr

  • Um diesen IntentIntegrator zu verwenden, muss ich ihn also in mein Projekt kopieren (in diesem Fall könnte svn:externals eine gute Idee sein, um zu vermeiden, dass eine veraltete Version beibehalten wird)?

    – Agent des Benutzers

    11. April 2010 um 18:05 Uhr

  • Ja, Sie müssen es kopieren (unter Beachtung der Apache-Lizenzanforderungen). Obwohl es so einfach ist, würde ich mich nicht darum kümmern, über svn:externals oder irgendetwas auf dem Laufenden zu bleiben.

    – Christoph Orr

    11. April 2010 um 21:55 Uhr

  • Wenn ich damit einen Barcode scanne, wird der gescannte Inhalt zur Barcode-Scanner-App hinzugefügt. Kann ich das deaktivieren?

    – Seshu Vinay

    14. Dezember 2011 um 10:05 Uhr

1646177589 820 Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
Benutzer496827

Ich hatte ein Problem mit der Implementierung des Codes, bis ich eine Website fand (ich kann sie gerade nicht wiederfinden), die erklärte, dass Sie den Paketnamen in den Namen von “intent.putExtra” aufnehmen müssen.

Es würde die Anwendung aufrufen, aber es würde keine Barcodes erkennen, und wenn ich es von geändert habe.

intent.putExtra("SCAN_MODE", "QR_CODE_MODE");

zu

intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");

Es hat super funktioniert. Nur ein Tipp für alle anderen Android-Programmieranfänger.

1646177589 481 Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
Yack

Die Verwendung des bereitgestellten IntentInegrator ist besser. Damit können Sie Ihren Benutzer auffordern, den Barcode-Scanner zu installieren, wenn er ihn nicht hat. Außerdem können Sie die Nachrichten anpassen. Die Konstante IntentIntegrator.REQUEST_CODE enthält den Wert des Anforderungscodes für das onActivityResult, um im obigen if-Block zu prüfen.

IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity 
intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR

IntentIntegrator.java

Um Zxing auf diese Weise zu verwenden, muss ein Benutzer auch die Barcode-Scanner-App installieren, was nicht ideal ist. Wahrscheinlich möchten Sie Zxing direkt in Ihre App bündeln.

Ich empfehle die Verwendung dieser Bibliothek: https://github.com/dm77/barcodescanner

Es braucht all die verrückten Build-Probleme, auf die Sie stoßen werden, wenn Sie versuchen, Xzing oder Zbar direkt zu integrieren. Es verwendet diese Bibliotheken unter der Decke, verpackt sie jedoch in eine sehr einfach zu verwendende API.

1646177589 207 Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
Aracem

Wenn Sie den von der ZXing-Bibliothek empfohlenen IntentIntegrator in Ihren Code aufnehmen und nicht verwenden möchten, können Sie einige dieser Ports verwenden:

Ich benutze das erste und es funktioniert perfekt! Es hat ein Beispielprojekt zum Ausprobieren.

  • Der erste unterstützt nur das Scannen. Das zweite ist ein gutes Beispiel für die Codierung eines QR-Codes, der für mich funktioniert hat.

    – Viktor Sergijenko

    27. September 2013 um 8:35 Uhr

  • Beide Links sind defekt (Google Code wurde heruntergefahren). Vielleicht können Sie sie ersetzen (z. B. diese Projekte können jetzt auf GitHub sein)?

    – Peter Mortensen

    26. April 2019 um 9:39 Uhr


Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
Jim Baka

Barcode-Erkennung ist jetzt verfügbar in Google Play-Dienste. Code-Labor des Setup-Prozesses, hier sind die API-Dokumenteund ein Beispielprojekt.

  • Der erste unterstützt nur das Scannen. Das zweite ist ein gutes Beispiel für die Codierung eines QR-Codes, der für mich funktioniert hat.

    – Viktor Sergijenko

    27. September 2013 um 8:35 Uhr

  • Beide Links sind defekt (Google Code wurde heruntergefahren). Vielleicht können Sie sie ersetzen (z. B. diese Projekte können jetzt auf GitHub sein)?

    – Peter Mortensen

    26. April 2019 um 9:39 Uhr


1646177590 826 Verwenden von ZXing zum Erstellen einer Android App zum Scannen von
shyyko.serhiy

Sie können diese Kurzanleitung verwenden http://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start/ mit einfachem Beispielprojekt zum Erstellen einer Android-App ohne IntentIntegrator.

  • Ich habe Ihr Beispielprojekt ausprobiert und kann es nicht schaffen, einen QRCode zu scannen, in logcat bekomme ich com.google.zxing.NotFoundException und Decode Fail… bei DecodeAsyncTask (Innere Klasse von PreviewCallback), das Ergebnis erhalten von onPostExecute ist immer null, auch wenn sich der QRCode innerhalb des Rahmenrechtecks ​​befindet … außerdem sehe ich weder den “Laser” noch die gelben Kandidatenpunkte, die in der ursprünglichen zxing-App erscheinen (nicht sicher, ob Sie das implementiert haben … .)

    – Lukas Jota

    28. Januar 2014 um 15:49 Uhr

  • fand es! Es wird nur im Querformat gescannt … eine Idee, wie das zu lösen ist?

    – Lukas Jota

    28. Januar 2014 um 16:06 Uhr

  • Es gibt weder “Laser” noch die gelben Kandidatenpunkte, da dies nur ein Beispiel dafür ist, wie ZXing integriert werden kann, falls Sie ein anderes Layout und andere Funktionen als beim Intent-Ansatz verwenden möchten. Wenn die Verwendung des Layouts von Intent für Sie in Ordnung ist, sollten Sie besser bei dem von Christopher Orr vorgeschlagenen Ansatz bleiben.

    – shyyko.serhiy

    29. Januar 2014 um 10:33 Uhr

906020cookie-checkVerwenden von ZXing zum Erstellen einer Android-App zum Scannen von Barcodes [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy