Interfejs Google Code Scanner API zapewnia kompleksowe rozwiązanie do skanowania kodu bez konieczności proszenia aplikacji o uprawnienia dostępu do aparatu, przy jednoczesnym zachowaniu prywatności użytkownika. Jest to możliwe dzięki przekazaniu zadania skanowania kodu do usług Google Play i zwracaniu do aplikacji tylko wyników skanowania (film 1).
Przetwarzanie obrazu odbywa się na urządzeniu, a Google nie przechowuje wyników ani danych obrazu. Interfejs API obsługuje te same formaty kodów co
interfejs ML Kit Barcode Scanning API i zwraca ten
sam Barcode
obiekt.
Ten interfejs API jest idealny dla aplikacji, które wymagają płynnego skanowania kodu bez konieczności korzystania z niestandardowego interfejsu lub aparatu. Implementacja znajduje się w całości w usługach Google Play, co zapewnia minimalny wpływ na rozmiar aplikacji.
Od wersji 16.1.0 możesz włączyć automatyczne powiększenie, aby skaner kodów Google mógł automatycznie skanować kody kreskowe znajdujące się daleko od aparatu. Gdy użytkownicy skierują urządzenia na kod kreskowy, skaner inteligentnie go wykryje i powiększy. Eliminuje to konieczność ręcznego dostosowywania powiększenia, dzięki czemu skanowanie kodów kreskowych jest szybsze, dokładniejsze i bardziej dostępne (zobacz film 2).
![]() |
![]() |
| Film 1. Integracja skanera kodów Google | Film 2. Efekt automatycznego powiększenia |
W przypadku bardziej złożonych zastosowań, które wymagają niestandardowego interfejsu, zalecamy bezpośrednie użycie 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 tych sekcjach.
Konfiguracja aplikacji
W pliku
settings.gradlenajwyższego poziomu dodaj repozytorium Google Maven i centralne repozytorium Maven w blokudependencyResolutionManagement:dependencyResolutionManagement { repositories { google() mavenCentral() } }Dodaj zależność Usług Google Play do pakietu SDK
play-services-code-scannerdo pliku build.gradle modułu. Jest to zwykleapp/build.gradle:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }Możesz skonfigurować aplikację tak, aby usługi Google Play automatycznie pobierały moduł skanera na urządzenie podczas instalowania aplikacji ze Sklepu Play.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>Możesz też wyraźnie sprawdzić dostępność modułu skanera i poprosić o jego pobranie za pomocą interfejsu ModuleInstallClient API usług Google Play.
Jeśli nie włączysz pobierania modułów podczas instalacji ani nie poprosisz o wyraźne pobranie, a moduł skanera nie jest jeszcze zainstalowany w innym przypadku użycia, usługi Google Play pobiorą moduł skanera przy pierwszym użyciu.
Zeskanuj kod
Aby zeskanować kod kreskowy, wykonaj te czynności.
Opcjonalnie: skonfiguruj skaner kodów.
Jeśli wiesz, jakie formaty kodów kreskowych chcesz odczytać, możesz przyspieszyć działanie detektora kodów kreskowych, konfigurując go tak, aby wykrywał tylko te formaty. Aby na przykład wykrywać tylko kody Aztec i kody QR, utwórz
GmsBarcodeScannerOptionsobiekt 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ększenie jest wyłączone. Aby włączyć funkcję automatycznego powiększenia od wersji 16.1.0, wywołaj metodę
enableAutoZoom()jak w tym przykładzie 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();
Pobierz instancję
GmsBarcodeScanner, jak pokazano w przykładzie kodu: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);
Poproś o skanowanie kodu, wywołując metodę
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 });
Obsłuż wynikowy
Barcode.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();

