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
W pliku
settings.gradle
najwyższego poziomu dodaj repozytorium Google Maven oraz Centralne repozytorium Maven w pliku BlokadadependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Dodaj zależność Usług Google Play do obiektu
play-services-code-scanner
pakietu SDK do pliku kompilacji modułu Gradle, który zwykle jestapp/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
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.
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 kody 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();
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);
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 });
Wykonaj działanie w polu
Barcode
.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();