ZXing für Kotlin: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

ZXing für Kotlin: Vollständige Anleitung zum Scannen von QR-Codes und Barcodes

In der heutigen Welt der mobilen Apps und Prozessautomatisierung ist das schnelle Auslesen von Informationen aus QR-Codes und Barcodes zum De-facto-Standard geworden. Die Bibliothek ZXing (ausgesprochen "Zebra Crossing") ist ein leistungsstarkes Open-Source-Tool, das Entwicklern ermöglicht, Funktionen zur Erkennung und Generierung von eindimensionalen (EAN, UPC, Code 128) und zweidimensionalen (QR, Data Matrix, Aztec) Codes einfach in ihre Anwendungen zu integrieren.

Diese Anleitung richtet sich an Kotlin-Entwickler, die ZXing von der grundlegenden Installation bis hin zur Erstellung komplexer Scanner mit Leistungsoptimierung erlernen möchten. Wir behandeln nicht nur die Standardszenarien, sondern auch die kniffligen Details, die bei Anfängern oft zu Fehlern führen.

1. Was ist ZXing und warum wird es benötigt?

ZXing ist eine Bildverarbeitungsbibliothek, die auf das Dekodieren und Kodieren von Barcodes spezialisiert ist. Sie wurde von Google entwickelt und wird von der Community gepflegt. Ihr Hauptvorteil ist die Plattformunabhängigkeit (Java/Kotlin, C++, JavaScript, Python) und die Unterstützung einer Vielzahl von Formaten: von klassischen QR-Codes bis hin zu speziellen Industrie-Codes wie PDF417.

Warum ZXing in Kotlin verwenden? Erstens ist es der Goldstandard für die Android-Entwicklung. Zweitens bietet die Bibliothek vorgefertigte Klassen für die Kameraarbeit (über CameraX oder Camera2), was das Schreiben von Low-Level-Code zur Videoaufnahme überflüssig macht. Drittens kann ZXing nicht nur mit Live-Video, sondern auch mit vorhandenen Bildern (Dateien aus der Galerie) arbeiten, was die Anwendungsszenarien erweitert: vom Scannen von Quittungen bis zur Erkennung von Codes auf Produktverpackungen in der Logistik.

2. Installation

Für Kotlin (Android) erfolgt die Installation über das Gradle-Build-System. Fügen Sie die folgenden Abhängigkeiten in Ihre build.gradle-Datei (Module: app) ein:

dependencies {
    // Hauptbibliothek ZXing
    implementation("com.google.zxing:core:3.5.3")
    // Zusätzliches Modul für die Kameraarbeit (empfohlen)
    implementation("com.journeyapps:zxing-android-embedded:4.3.0")
}

Wenn Sie Kotlin Multiplatform oder reines serverseitiges Kotlin (Ktor) verwenden, benötigen Sie nur das Core-Modul:

implementation("com.google.zxing:core:3.5.3")

Für Desktop-Anwendungen (JVM) fügen Sie die Abhängigkeit analog in Maven oder Gradle hinzu. Nach der Synchronisierung des Projekts ist die Bibliothek einsatzbereit.

3. Schnellstart – Minimales funktionierendes Beispiel

Der einfachste Weg, ZXing zu testen, ist das Starten einer integrierten Activity zum Scannen. Dazu reicht es, einen Intent aufzurufen. Nachfolgend finden Sie den minimalen Code für eine Android Activity in Kotlin:

import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.journeyapps.barcodescanner.ScanContract
import com.journeyapps.barcodescanner.ScanOptions

class MainActivity : AppCompatActivity() {

    // Registriert den Contract zum Starten des Scanners
    private val barcodeLauncher = registerForActivityResult(ScanContract()) { result ->
        if (result.contents == null) {
            Toast.makeText(this, "Scan abgebrochen", Toast.LENGTH_SHORT).show()
        } else {
            Toast.makeText(this, "Ergebnis: ${result.contents}", Toast.LENGTH_LONG).show()
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Konfiguration der Scan-Optionen
        val options = ScanOptions()
        options.setDesiredBarcodeFormats(ScanOptions.QR_CODE) // Nur QR
        op                    

Empfehlungen