Google Code-Scanner (nur Android)

Die Google Code Scanner API bietet eine Komplettlösung zum Scannen von Codes, ohne dass Ihre App die Kameraberechtigung anfordern muss. Dabei wird die Privatsphäre der Nutzer geschützt. Dazu wird das Scannen des Codes an die Google Play-Dienste delegiert und nur die Scanergebnisse an Ihre App zurückgegeben (Video 1). Die gesamte Bildverarbeitung erfolgt auf dem Gerät. 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 eignet sich ideal für Apps, bei denen ein nahtloses Scannen von Codes ohne benutzerdefinierte Benutzeroberfläche oder Kamera erforderlich ist. Die Implementierung erfolgt vollständig innerhalb der Google Play-Dienste, sodass sich die Größe Ihrer App nur minimal erhöht.

Ab Version 16.1.0 können Sie den Autozoom aktivieren, damit der Google-Codescanner automatisch Barcodes scannt, die sich weit von der Kamera entfernt befinden. Wenn Nutzer ihr Gerät auf einen Barcode richten, erkennt der Scanner ihn intelligent und zoomt heran. Manuelle Zoomanpassungen sind nicht mehr erforderlich, was das Barcode-Scannen schneller, genauer und barrierefreier macht (siehe Video 2).

Video 1 Google Code Scanner-Integration Video 2 Automatischer Zoomeffekt

Für komplexere Anwendungsfälle, die eine benutzerdefinierte Benutzeroberfläche erfordern, empfehlen wir die direkte Verwendung der ML Kit Barcode Scanning API.

Wenn Sie Fragen haben, einen Fehler melden oder Hilfe benötigen, besuchen Sie die ML Kit-Communityseite.

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 der Gradle-Builddatei Ihres Moduls, in der Regel app/build.gradle, die Abhängigkeit von Google Play-Diensten für das play-services-code-scanner SDK hinzu:

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

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

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

    Wenn Sie Moduldownloads bei der Installation nicht aktivieren oder explizite Downloads anfordern und das Scannermodul nicht bereits für einen anderen Anwendungsfall installiert ist, wird es von Google Play-Diensten zum ersten Mal heruntergeladen, wenn es verwendet wird.

Code scannen

Führen Sie die folgenden Schritte aus, um einen Barcode zu scannen.

  1. Optional: Konfigurieren Sie den Codescanner.

    Wenn Sie wissen, welche Barcodeformate gelesen werden sollen, können Sie die Geschwindigkeit des Barcode-Detektors verbessern, indem Sie ihn so konfigurieren, dass nur diese Formate erkannt werden. Wenn Sie beispielsweise nur Aztec-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();

    Der automatische Zoom ist standardmäßig deaktiviert. Wenn Sie die Funktion ab Version 16.1.0 aktivieren möchten, rufen Sie enableAutoZoom() auf, wie im folgenden Codebeispiel gezeigt.

    Kotlin

    val options = GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build()

    Java

    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build();
  2. Rufen Sie eine Instanz von GmsBarcodeScanner ab, wie im Codebeispiel gezeigt:

    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. Fordern Sie einen Codescan an, indem Sie startScan() aufrufen.

    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. Verarbeite die resultierende Barcode.

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();