L'API Google Code Scanner fornisce una soluzione completa per la scansione del codice
senza richiedere all'app di richiedere l'autorizzazione di accesso alla fotocamera, tutelando la privacy
dell'utente. A questo scopo, delega l'attività di scansione del codice a
Google Play Services e restituisce solo i risultati della scansione alla tua app (Video 1).
Tutte le immagini vengono elaborate 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 la necessità di un'esperienza utente o fotocamera personalizzata. L'implementazione risiede interamente in Google Play Services, garantendo un impatto minimo sulle dimensioni dell'app.
A partire dalla versione 16.1.0, puoi attivare lo zoom automatico per consentire allo scanner di codici Google di scansionare automaticamente i codici a barre lontani dalla fotocamera. Quando gli utenti puntano i propri dispositivi verso un codice a barre, lo scanner rileva e aumenta lo zoom in modo intelligente sul codice. In questo modo non è necessario regolare lo zoom manualmente, rendendo la scansione dei codici a barre più veloce, accurata 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 una UI personalizzata, consigliamo di utilizzare direttamente l'API ML Kit Barcode Scanning.
Se hai domande, vuoi segnalare un bug o hai bisogno di assistenza, consulta la pagina della community di ML Kit.
Prima di iniziare
Per preparare l'app, completa i passaggi nelle sezioni seguenti.
Configura la tua app
Nel file
settings.gradle
di primo livello, includi il Repository Maven di Google e il Repository centrale Maven nel bloccodependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Aggiungi la dipendenza 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 l'app in modo che Google Play Services scarichi automaticamente il modulo scanner sul dispositivo mentre l'app viene installata dal Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Puoi anche verificare esplicitamente la disponibilità del modulo dello scanner e richiedere il download tramite l'API ModuleInstallaClient di Google Play Services.
Se non abiliti i download del modulo al momento dell'installazione o non richiedi download espliciti e il modulo dello scanner non è già installato per un altro caso d'uso, Google Play Services scarica il modulo dello scanner la prima volta che viene utilizzato.
Scansiona un codice
Implementa i seguenti passaggi per scansionare un codice a barre.
(Facoltativo) Configura lo scanner di codici.
Se conosci i formati dei codici a barre che ti aspetti di leggere, puoi migliorare la velocità del rilevatore di codici a barre configurandolo in modo che rilevi solo quei formati. Ad esempio, per rilevare solo il codice Azteca 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();
Lo zoom automatico è disattivato per impostazione predefinita. Per abilitare la funzionalità di zoom automatico a partire dalla versione 16.1.0, chiama
enableAutoZoom()
come mostrato nell'esempio di codice 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();
Recupera 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 l'elemento
Barcode
risultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();