L'API Google Code Scanner fornisce una soluzione completa per la scansione dei codici senza richiedere all'app l'autorizzazione fotocamera, preservando al contempo la privacy dell'utente. A questo scopo, l'attività di scansione del codice viene delegata a Google Play Services e alla tua app vengono restituiti 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 ML Kit Barcode Scanning e restituisce lo stesso oggetto Barcode.
Questa API è ideale per le app che richiedono una scansione dei codici senza interruzioni, senza la necessità di un'esperienza con la fotocamera o un'interfaccia utente personalizzata. 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 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 loro dispositivi verso un codice a barre, lo scanner lo rileva in modo intelligente e lo ingrandisce. In questo modo non è necessario regolare manualmente lo zoom, il che rende la scansione dei codici a barre più rapida, accurata e accessibile (vedi Video 2).
![]() |
![]() |
| Video 1. Integrazione di Google Code Scanner | 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 descritti 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 bloccodependencyResolutionManagement:dependencyResolutionManagement { repositories { google() mavenCentral() } }Aggiungi la dipendenza di Google Play Services per l'SDK
play-services-code-scanneral file di build Gradle del 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 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 ModuleInstallClient di Google Play Services.
Se non attivi i download dei moduli 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 al primo utilizzo.
Scansiona un codice
Segui questi passaggi per scansionare 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 che rilevi solo questi formati. Ad esempio, per rilevare solo i codici Aztec e i codici QR, crea un oggetto
GmsBarcodeScannerOptionscome 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();
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'oggetto
Barcoderisultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();

