Google Code-Scanner (Beta)

Die Google Codescanner API bietet eine vollständige Lösung zum Scannen von Codes, ohne dass Ihre App Kameraberechtigungen anfordern muss. Die Nutzerdaten müssen dabei geschützt bleiben. Dazu delegieren Sie die Aufgabe, den Code an Google Play-Dienste zu scannen und nur die Scanergebnisse an Ihre App zurückzugeben. Die gesamte Bildverarbeitung findet auf dem Gerät statt und Google speichert die Ergebnisse oder Bilddaten nicht. Die API unterstützt dieselben Codeformate wie die ML Kit Barcode Scanning API und gibt dasselbe Barcode-Objekt zurück.

Diese API ist ideal für Apps, die nur einen Code scannen müssen und keine benutzerdefinierte UI oder Kameraerfahrung erfordern. Die Implementierung erfolgt vollständig in den Google Play-Diensten, sodass dies keine bedeutenden Auswirkungen auf die Größe Ihrer App hat. Bei komplexeren Anwendungsfällen, die eine benutzerdefinierte UI erfordern, können Sie die ML Kit Barcode Scanning API direkt verwenden.

Wenn Sie Fragen haben, einen Fehler melden oder Unterstützung benötigen, rufen Sie die ML Kit-Community-Seite auf.

Hinweis

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.

Eigene App konfigurieren

  1. Fügen Sie in der Datei settings.gradle auf oberster Ebene das Maven-Repository von Google und das Maven Central Repository unter dem dependencyResolutionManagement-Block ein:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Fügen Sie die Google Play-Dienstabhängigkeit für das play-services-code-scanner SDK der Gradle-Build-Datei Ihres Moduls hinzu. Diese ist in der Regel app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3'
    }
    
  3. Sie können Ihre App so konfigurieren, dass Google Play-Dienste das Scannermodul automatisch auf das Gerät herunterladen, während Ihre App aus dem Play Store installiert wird.

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    Sie können die Verfügbarkeit des Scannermoduls auch explizit überprüfen und den Download über die ModuleInstallClient API der Google Play-Dienste anfordern.

    Wenn Sie die Installation des Installationsmoduls nicht aktivieren oder einen expliziten Download anfordern, laden die Google Play-Dienste das Scannermodul zum ersten Mal herunter, wenn es nicht bereits für einen anderen Anwendungsfall installiert wurde.

Code scannen

1. Optional: Codescanner konfigurieren

Wenn Sie wissen, welche Barcodeformate Sie lesen möchten, können Sie die Geschwindigkeit des Barcode-Detektors verbessern, indem Sie ihn so konfigurieren, dass er nur diese Formate erkennt. Wenn Sie beispielsweise nur Azteken-Code und QR-Codes erkennen möchten, erstellen Sie ein GmsBarcodeScannerOptions-Objekt wie im folgenden Beispiel:

Kotlin

val options = GmsBarcodeScannerOptions.Builder()
    .setBarcodeFormats(
        Barcode.FORMAT_QR_CODE,
        Barcode.FORMAT_AZTEC)
    .build()

Java

GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
    .setBarcodeFormats(
        Barcode.FORMAT_QR_CODE,
        Barcode.FORMAT_AZTEC)
    .build();

2. Instanz von GmsBarcodeScanner abrufen

Kotlin

val scanner = GmsBarcodeScanning.getClient(this)
// Or with a configured options
// val scanner = GmsBarcodeScanning.getClient(this, options)

Java

GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
// Or with a configured options
// GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);

3. Durch Aufrufen von startScan() einen Codescannen anfordern

Kotlin

scanner.startScan()
    .addOnSuccessListener { barcode ->
        // Task completed successfully
    }
    .addOnCanceledListener {
        // Task canceled
    }
    .addOnFailureListener { e ->
        // Task failed with an exception
    }

Java

scanner
    .startScan()
    .addOnSuccessListener(
        barcode -> {
          // Task completed successfully
        })
    .addOnCanceledListener(
        () -> {
          // Task canceled
        })
    .addOnFailureListener(
        e -> {
          // Task failed with an exception
        });

4. Umgang mit dem resultierenden Barcode

Kotlin

val rawValue: String? = barcode.rawValue

Java

String rawValue = barcode.getRawValue();