L'API dello scanner di codici di Google fornisce una soluzione completa per la scansione dei codici senza richiedere alla tua app l'autorizzazione fotocamera, preservando al contempo la privacy degli utenti. Questo risultato si ottiene delegando l'attività di scansione del codice a Google Play Services e restituendo alla tua app solo i risultati della scansione (video 1).
Tutta l'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 Barcode Scanning di ML Kit e restituisce lo
stesso Barcode
oggetto.
Questa API è ideale per le app che richiedono una scansione dei codici senza interruzioni senza la necessità di un'interfaccia utente o di un'esperienza con la fotocamera personalizzata. L'implementazione risiede interamente nei servizi Google Play, 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 di Google di scansionare automaticamente i codici a barre lontani dalla fotocamera. Quando gli utenti puntano i propri dispositivi su un codice a barre, lo scanner lo rileva e lo ingrandisce in modo intelligente. In questo modo non è necessario regolare manualmente lo zoom, il che rende la scansione dei codici a barre più rapida, accurata e accessibile (vedi il video 2).
![]() |
![]() |
| Video 1. Integrazione dello scanner di codici di Google | Video 2. Effetto zoom automatico |
Per casi d'uso più complessi che richiedono un'interfaccia utente personalizzata, ti consigliamo di utilizzare direttamente l' API Barcode Scanning di ML Kit.
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 la tua app, completa i passaggi nelle sezioni seguenti.
Configura la tua app
Nel file
settings.gradledi primo livello, includi il repository Maven di Google e il repository centrale Maven nel bloccodependencyResolutionManagementdependencyResolutionManagement { repositories { google() mavenCentral() } }Aggiungi la dipendenza dei servizi Google Play per l'SDK
play-services-code-scanneral file di build Gradle del modulo, in genereapp/build.gradle:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }Puoi configurare la tua app in modo che i servizi Google Play scarichino automaticamente il modulo dello scanner sul dispositivo durante l'installazione dell'app 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 dello scanner e richiedere il download tramite l'API ModuleInstallClient dei Google Play Services.
Se non attivi i download dei moduli in fase di installazione o non richiedi download espliciti e il modulo dello scanner non è già installato per un altro caso d'uso, i servizi Google Play scaricano il modulo dello scanner la prima volta che viene utilizzato.
Scansiona un codice
Per scansionare un codice a barre, segui questi passaggi.
(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 che rilevi solo questi formati. Ad esempio, per rilevare solo il codice Aztec e i codici QR, crea un
GmsBarcodeScannerOptionsoggetto 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 nell'esempio di codice seguente.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
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'oggetto risultante
Barcode.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();

