L'API Google Code Scanner fornisce una soluzione completa per la scansione del codice senza che l'app richieda l'autorizzazione di accesso alla fotocamera, tutelando al contempo la privacy degli utenti. A tale scopo, delega a Google Play Services l'attività di scansione del codice e restituisce solo i risultati della scansione alla tua app (Video 1).
L'intera elaborazione delle immagini avviene sul dispositivo e Google non memorizza i risultati o i dati delle immagini. L'API supporta gli stessi formati di codice dell'API ML Kit Barcode Scanning e restituisce lo stesso oggetto Barcode
.
Questa API è ideale per le app che richiedono una scansione del codice senza interruzioni, senza bisogno di un'interfaccia utente personalizzata o un'esperienza con la fotocamera. L'implementazione risiede interamente all'interno di Google Play Services, garantendo un impatto minimo sulle dimensioni della tua app.
A partire dalla versione 16.1.0, puoi abilitare lo zoom automatico per consentire allo scanner di codici Google di scansionare automaticamente i codici a barre distanti dalla fotocamera. Quando gli utenti puntano il dispositivo verso un codice a barre, lo scanner rileva il codice a barre e lo aumenta in modo intelligente. Questo elimina la necessità di regolazioni manuali dello zoom, rendendo la scansione dei codici a barre più veloce, precisa e più accessibile (vedi Video 2).
Video 1. Integrazione dello scanner di codici Google | Video 2. Effetto zoom automatico |
Per casi d'uso più complessi che richiedono un'interfaccia utente personalizzata, consigliamo di utilizzare direttamente l'API ML Kit Barcode Scanning.
In caso di domande, se vuoi inviare un bug o se hai bisogno di assistenza, visita la pagina della community ML Kit.
Prima di iniziare
Per preparare l'app, completa i passaggi nelle sezioni seguenti.
Configura la tua app
Nel tuo file
settings.gradle
di primo livello, includi il Repository Maven di Google e il repository centrale Maven all'interno del bloccodependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Aggiungi la dipendenza di Google Play Services per l'SDK
play-services-code-scanner
al file di build Gradle del tuo modulo, che in genere èapp/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
Puoi configurare la tua app in modo che Google Play Services scarichi automaticamente il modulo dello scanner sul dispositivo mentre l'app è installata dal Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Puoi anche controllare esplicitamente la disponibilità del modulo Scanner e richiedere il download tramite l'APIModuleInstallClient di Google Play Services.
Se non abiliti i download dei moduli al momento dell'installazione o non richiedi download espliciti, e il modulo Scanner non è già installato per un altro caso d'uso, Google Play Services scarica il modulo scanner la prima volta che viene utilizzato.
Scansiona un codice
Implementa i seguenti passaggi per eseguire la scansione di un codice a barre.
(Facoltativo) Configura lo scanner di codici.
Se sai quali formati di codici a barre prevedi di leggere, puoi migliorare la velocità del rilevatore di codici a barre configurandolo in modo da rilevare solo questi formati. Ad esempio, per rilevare solo il codice azteco e i codici QR, crea un oggetto
GmsBarcodeScannerOptions
come nell'esempio seguente: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();
Per impostazione predefinita, lo zoom automatico è disattivato. Per attivare la funzionalità di zoom automatico a partire dalla versione 16.1.0, chiama
enableAutoZoom()
come mostrato nel codice di esempio che segue.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();
Ottieni un'istanza di
GmsBarcodeScanner
, come mostrato nell'esempio di codice: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);
Richiedi una scansione del codice chiamando il numero
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 });
Gestisci la risorsa
Barcode
risultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();