Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Skanowanie kodów Google (beta)

Interfejs Google Skaner kodu Google zapewnia pełne rozwiązanie do skanowania kodów bez konieczności żądania aplikacji przez aplikację, zachowując przy tym prywatność użytkowników. Można to osiągnąć, przekazując zadanie skanowania kodu do usług Google Play i zwracając tylko wyniki skanowania do aplikacji. Przetwarzanie obrazu odbywa się na urządzeniu, a Google nie przechowuje wyników ani danych obrazu. Interfejs API obsługuje te same formaty kodu co ML Kit Barcode Scanning API i zwraca ten sam obiekt Barcode.

Ten interfejs API idealnie sprawdza się w aplikacjach, które wymagają skanowania kodu i nie wymagają niestandardowego interfejsu ani aparatu. Implementacja jest całkowicie w usługach Google Play, więc nie ma to wpływu na rozmiar aplikacji. W przypadku bardziej skomplikowanych przypadków, które wymagają niestandardowego interfejsu, użyj bezpośrednio interfejsu ML Kit Barcode Scanning API.

Jeśli masz pytania, chcesz zgłosić błąd lub potrzebujesz pomocy, zajrzyj na stronę społeczności ML Kit.

Zanim zaczniesz

Aby przygotować aplikację, wykonaj czynności opisane w kolejnych sekcjach.

Wymagania wstępne aplikacji

Upewnij się, że plik kompilacji aplikacji korzysta z tych wartości:

  • minSdkVersion (21 lub więcej)

Konfigurowanie aplikacji

  1. W pliku settings.gradle najwyższego poziomu uwzględnij repozytorium Maven i centralne repozytorium Maven w bloku dependencyResolutionManagement w Google Cloud:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Dodaj zależność z usługami Google Play w pakiecie SDK play-services-code-scanner od Twojego pakietu SDK, który zwykle wynosi app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3'
    }
    
  3. Możesz skonfigurować aplikację tak, aby Usługi Google Play automatycznie pobierały moduł skanera na urządzenie, gdy jest ona zainstalowana ze Sklepu 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 poprosić o pobranie go za pomocą interfejsu ModuleInstallClient API w Usługach Google Play.

    Jeśli nie włączysz opcji pobierania modułów instalacji w czasie lub nie poprosisz o pobranie konkretnego pliku, Usługi Google Play pobierzą moduł skanu po raz pierwszy, o ile nie został już zainstalowany w innym przypadku.

Zeskanuj kod

1. (Opcjonalnie) Konfigurowanie skanera kodów

Jeśli wiesz, które formaty kodów kreskowych chcesz odczytać, możesz zwiększyć szybkość wykrywania kodu kreskowego, konfigurując go tylko do wykrywania. Aby na przykład wykryć tylko kod Aztec lub kody QR, utwórz obiekt 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();

2. Pobieranie instancji GmsBarcodeScanner

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 skanowanie kodu przez wywołanie 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. Użyj powstałego kodu kreskowego.

Kotlin

val rawValue: String? = barcode.rawValue

Java

String rawValue = barcode.getRawValue();