Google Code-Scanner (nur Android)

Die Codescanner API von Google bietet eine Komplettlösung zum Scannen von Code, ohne dass Ihre App Kameraberechtigungen anfordern muss, während die Privatsphäre der Nutzer wahrt. Dazu wird das Scannen des Codes an Google Play-Dienste delegiert und nur die Scanergebnisse an Ihre App zurückgegeben (Video 1). Die Bildverarbeitung erfolgt auf dem Gerät und Google speichert weder die Ergebnisse noch die Bilddaten. 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 Anwendungen, die ein nahtloses Codescannen ohne eine benutzerdefinierte Benutzeroberfläche oder Kamerafunktionen erfordern. Die Implementierung erfolgt vollständig innerhalb der Google Play-Dienste und sorgt so für minimale Auswirkungen auf die Größe deiner App.

Ab Version 16.1.0 können Sie den automatischen Zoom aktivieren, damit der Codescanner von Google automatisch Barcodes scannen kann, die weit von der Kamera entfernt sind. Wenn Nutzer ihre Geräte auf einen Barcode richten, wird der Barcode vom Scanner intelligent erkannt und herangezoomt. Dadurch müssen keine manuellen Zoomanpassungen mehr vorgenommen werden. Barcode-Scans werden schneller, genauer und leichter zugänglich (siehe Video 2).

Video 1. Einbindung des Code-Scanners von Google Video 2. Automatischer Zoomeffekt

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

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

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

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Du kannst deine App so konfigurieren, dass die Google Play-Dienste das Scanner-Modul automatisch auf das Gerät herunterladen, während die 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 einen Download über die ModuleInstallClient API der Google Play-Dienste anfordern.

    Wenn Sie die Modul-Downloads während der Installation nicht aktivieren oder explizite Downloads anfordern und das Scanner-Modul nicht bereits für einen anderen Anwendungsfall installiert ist, laden die Google Play-Dienste das Scanner-Modul bei der ersten Verwendung herunter.

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 Sie lesen möchten, können Sie die Geschwindigkeit des Barcodedetektors 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 wie im folgenden Beispiel ein GmsBarcodeScannerOptions-Objekt:

    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. Um den automatischen Zoom zu aktivieren, müssen Sie ab Version 16.1.0 enableAutoZoom() aufrufen, 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. Rufen Sie startScan() auf, um ein Scannen des Codes anzufordern.

    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 das resultierende Barcode.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();