Skaner kodów Google (tylko w Androidzie)

Interfejs Google Code Scanner API zapewnia kompletne rozwiązanie do skanowania kodu bez konieczności proszenia aplikacji o uprawnienia do korzystania z aparatu, jednocześnie prywatności. Jest to możliwe poprzez przekazanie zadania skanowania kodu Usługi Google Play i zwracanie do aplikacji tylko wyników skanowania (film 1). Przetwarzanie obrazu odbywa się na urządzeniu, a Google nie przechowuje wyników lub dane obrazu. Interfejs API obsługuje te same formaty kodu co ML Kit Barcode Scanning API i zwraca błąd ten sam Barcode obiektu.

Ten interfejs API jest idealny dla aplikacji, które wymagają bezproblemowego skanowania kodu bez konieczności aby spersonalizować interfejs i obsługę kamery. Implementacja odbywa się w całości w ramach Usługi Google Play zapewniające minimalny wpływ na rozmiar aplikacji.

Od wersji 16.1.0 możesz włączyć automatyczne powiększenie, aby zezwolić na kod Google aby automatycznie skanować kody kreskowe znajdujące się w pewnej odległości od aparatu. Kiedy Jeśli użytkownik skieruje urządzenie na kod kreskowy, skaner i powiększ kod kreskowy. Eliminuje to potrzebę ręcznego powiększania. dzięki czemu skanowanie kodów kreskowych jest szybsze, dokładniejsze i bardziej dostępne (zobacz Film 2).

Film 1. Integracja ze skanerem kodów Google Film 2. Efekt automatycznego powiększenia

W bardziej złożonych przypadkach, które wymagają niestandardowego interfejsu użytkownika, zalecamy użycie funkcji bezpośrednio za pomocą ML Kit Barcode Scanning API.

Jeśli masz pytania, chcesz zgłosić błąd lub potrzebujesz pomocy, zapoznaj się z Strona społeczności ML Kit.

Zanim zaczniesz

Aby przygotować aplikację, wykonaj czynności opisane w poniższych sekcjach.

Konfiguracja aplikacji

  1. W pliku settings.gradle najwyższego poziomu dodaj repozytorium Google Maven oraz Centralne repozytorium Maven w pliku Blokada dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Dodaj zależność Usług Google Play dla: play-services-code-scanner pakietu SDK do pliku kompilacji modułu Gradle, który zwykle jest app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Możesz skonfigurować w aplikacji Usługi Google Play automatycznie pobierz moduł skanera na urządzenie, gdy aplikacja jest zainstalowana w Sklepie Play.

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

    Możesz też bezpośrednio sprawdzić dostępność modułu skanera i wysłać żądanie pobierz przez Usługi Google Play ModuleInstallClient API.

    Jeśli nie włączysz pobierania modułów podczas instalacji lub nie poprosisz o treści dla pełnoletnich pobrane – a moduł skanera nie jest już zainstalowany dla innego przypadek użycia – Usługi Google Play po raz pierwszy pobierają moduł skanera, i czasu ich użycia.

Zeskanuj kod

Wykonaj poniższe czynności, aby zeskanować kod kreskowy.

  1. Opcjonalnie: skonfiguruj skaner kodu.

    Wiedząc, jakie formaty kodu kreskowego spodziewasz się odczytać, możesz poprawić prędkości wykrywania kodu kreskowego przez skonfigurowanie go w taki sposób, aby wykrywał tylko formatów reklam. Na przykład, aby wykrywać tylko kod Aztec i kody QR, utwórz GmsBarcodeScannerOptions jak w tym przykładzie:

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

    Domyślnie automatyczne powiększanie jest wyłączone. Aby włączyć funkcję automatycznego powiększenia od wersji 16.1.0 zadzwoń do enableAutoZoom() zgodnie z instrukcją poniżej przykładowego kodu.

    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. Pobierz instancję GmsBarcodeScanner, Jak widać w przykładowym kodzie:

    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. Poproś o zeskanowanie kodu, dzwoniąc pod numer startScan().

    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. Wykonaj działanie w polu Barcode.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();