Google Code-Scanner (nur Android)

Die Code Scanner API von Google bietet eine Komplettlösung zum Scannen von Code ohne dass Ihre App die Kameraberechtigung anfordern muss. Datenschutz. Dies geschieht, indem das Scannen des Codes an Google Play-Dienste und gibt nur die Scanergebnisse an Ihre App zurück (Video 1). Die gesamte Bildverarbeitung erfolgt auf dem Gerät und Google speichert die Ergebnisse nicht oder Bilddaten. Die API unterstützt dieselben Codeformate wie die ML Kit Barcode Scanning API und gibt den Gleicher Barcode -Objekt enthält.

Diese API eignet sich ideal für Apps, die einen nahtlosen Codescan erfordern. für eine benutzerdefinierte Benutzeroberfläche oder Kamera. Die Implementierung befindet sich vollständig Google Play-Dienste. Dadurch werden die Auswirkungen auf die Größe deiner App minimal.

Ab Version 16.1.0 können Sie den automatischen Zoom aktivieren, damit der Google-Code Scanner, um weit von der Kamera entfernte Barcodes automatisch zu scannen. Wann? wenn Nutzende ihr Gerät auf einen Barcode richten, erkennt der Scanner intelligent und zoomen Sie den Barcode heran. Dadurch entfällt die Notwendigkeit für manuelles Zoomen. Anpassungen, wodurch das Scannen von Barcodes schneller, genauer und leichter zugänglich wird (siehe Video 2).

Video 1. Google Code Scanner-Integration Video 2. Effekt „Automatischer Zoom“

Für komplexere Anwendungsfälle, die eine benutzerdefinierte UI erfordern, empfehlen wir die Verwendung des ML Kit Barcode Scanning API direkt verfügbar.

Wenn Sie Fragen haben, einen Fehler melden möchten oder Hilfe benötigen, sehen Sie in der ML Kit-Community-Seite

<ph type="x-smartling-placeholder">

Hinweis

<ph type="x-smartling-placeholder">

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 der obersten Ebene Maven-Repository von Google und Maven Central Repository im Block dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Füge die Google Play-Dienste-Abhängigkeit für play-services-code-scanner hinzu SDK in die Gradle-Build-Datei deines Moduls (üblicherweise app/build.gradle):

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Du kannst deine App so konfigurieren, dass Google Play-Dienste automatisch aktiviert werden das Scanner-Modul auf das Gerät herunterladen, während Ihre App installiert wird, über im Play Store.

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

    Sie können die Verfügbarkeit des Scanner-Moduls auch explizit prüfen Download über die Google Play-Dienste ModuleInstallClient API hinzu.

    Wenn Sie das Herunterladen von Modulen für die Installation nicht aktivieren oder explizite Anfragen Downloads – und das Scanner-Modul ist nicht bereits für eine andere Die Google Play-Dienste laden das Scanner-Modul Zeit 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 Sie lesen möchten, können Sie die Geschwindigkeit des Barcode-Detektors, indem Sie ihn so konfigurieren, dass nur diese Formaten. Um beispielsweise nur Aztec-Code und QR-Codes zu erkennen, erstellen Sie eine GmsBarcodeScannerOptions wie im folgenden Beispiel dargestellt:

    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 Ab Version 16.1.0 müssen Sie enableAutoZoom() aufrufen, wie in der folgenden Codebeispielen.

    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 GmsBarcodeScanner-Instanz 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 ein Codescans 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. Verarbeitet das resultierende Barcode.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();