Google Code-Scanner (nur Android)

Die Google Code Scanner API bietet eine Komplettlösung zum Scannen von Codes, ohne dass Ihre App eine Kameraberechtigung anfordern muss. Gleichzeitig wird die Privatsphäre der Nutzer geschützt. Dazu wird die Aufgabe des Scannens 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 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 nahtloses Code-Scannen ohne benutzerdefinierte UI oder Kamerafunktionen erfordern. Die Implementierung erfolgt vollständig in den Google Play-Diensten, wodurch die Größe Ihrer App nur minimal beeinflusst wird.

Ab Version 16.1.0 können Sie den Autozoom aktivieren, damit der Google Code Scanner Barcodes automatisch scannen kann, die weit von der Kamera entfernt sind. Wenn Nutzer ihre Geräte auf einen Barcode richten, erkennt der Scanner den Barcode intelligent und zoomt ihn heran. Manuelle Zoomeinstellungen sind nicht mehr erforderlich, wodurch das Scannen von Barcodes schneller, genauer und zugänglicher wird (siehe Video 2).

Video 1 Google Code Scanner-Integration Video 2 Autozoom-Effekt

Für komplexere Anwendungsfälle, die eine benutzerdefinierte UI erfordern, empfehlen wir, die ML Kit Barcode Scanning API direkt zu verwenden.

Wenn Sie Fragen haben, einen Fehler melden möchten oder Unterstützung benötigen, sehen Sie sich die ML Kit-Community-Seite an.

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 Block dependencyResolutionManagement ein:

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

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Sie können Ihre App so konfigurieren, dass die Google Play-Dienste das Scanner-Modul 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 auch explizit die Verfügbarkeit des Scanner-Moduls prüfen und den Download über die Google Play-Dienste ModuleInstallClient API anfordern.

    Wenn Sie keine Modul-Downloads während der Installation aktivieren oder keine expliziten Downloads anfordern und das Scanner-Modul nicht bereits für einen anderen Anwendungsfall installiert ist, laden die Google Play-Dienste das Scanner-Modul beim ersten Mal herunter, wenn es verwendet wird.

Code scannen

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

  1. Optional: Konfigurieren Sie den Code Scanner.

    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 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();

    Standardmäßig ist der Autozoom deaktiviert. Wenn Sie die Autozoom-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, 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 Code-Scan 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. Verarbeiten Sie den resultierenden Barcode.

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();