Interfejs Google Code Scanner API to kompletne rozwiązanie do skanowania kodów, które nie wymaga od aplikacji uprawnień dostępu do aparatu i chroni prywatność użytkowników. W tym celu zadanie skanowania kodu jest przekazywane do usług Google Play, a do aplikacji zwracane są tylko wyniki 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 API skanowania kodów kreskowych ML Kit i zwraca ten sam obiekt Barcode.
Ten interfejs API jest idealny w przypadku aplikacji, które wymagają płynnego skanowania kodów bez konieczności stosowania niestandardowego interfejsu użytkownika 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, które znajdują się daleko od aparatu. Gdy użytkownicy skierują urządzenie na kod kreskowy, skaner inteligentnie go wykryje i powiększy. Dzięki temu nie trzeba ręcznie dostosowywać powiększenia, co przyspiesza skanowanie kodów kreskowych, zwiększa jego dokładność i ułatwia korzystanie z tej funkcji (patrz film 2).
![]() |
![]() |
| Film 1. Integracja ze skanerem 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, odwiedź stronę społeczności ML Kit.
Zanim zaczniesz
Aby przygotować aplikację, wykonaj czynności opisane w poniższych sekcjach.
Konfiguracja aplikacji
W pliku
settings.gradlenajwyższego poziomu dodaj repozytorium Maven firmy Google 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ż bezpośrednio sprawdzić dostępność modułu skanera i poprosić o pobranie za pomocą interfejsu ModuleInstallClient API usług Google Play.
Jeśli nie włączysz pobierania modułu w czasie instalacji ani nie poprosisz o pobranie i moduł skanera nie jest jeszcze zainstalowany do innego zastosowania, 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 odczytywać, możesz zwiększyć szybkość detektora kodów kreskowych, konfigurując go tak, aby wykrywał tylko te formaty. Jeśli na przykład chcesz wykrywać tylko kody Aztec i 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();
Domyślnie automatyczne powiększenie jest wyłączone. Aby włączyć tę funkcję w wersji 16.1.0 lub nowszej, wywołaj
enableAutoZoom(), jak pokazano w poniższym 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 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 });
Obsłuż wynikowy obiekt
Barcode.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();

