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, preservando al contempo la privacy dell'utente. Questo viene ottenuto delegando la scansione del codice a Google Play Services e restituendo 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 per la scansione di codici a barre e restituisce lo stesso oggetto Barcode
.
Questa API è ideale per le app che richiedono la scansione del codice senza problemi senza bisogno di un'esperienza utente o con la fotocamera personalizzata. L'implementazione risiede interamente all'interno di 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 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 dello scanner di codici di 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.
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.gradle
di primo livello, includi il repository Maven di Google e il repository centrale Maven nel bloccodependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Aggiungi la dipendenza da Google Play Services per l'SDK
play-services-code-scanner
al file di compilazione 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 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 richiederne il download tramite l'API ModuleInstallClient di Google Play Services.
Se non attivi i download dei moduli al momento dell'installazione o 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
Per eseguire la scansione di un codice a barre, segui i passaggi che seguono.
(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 codici Aztec e 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 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 la scansione di un 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 il file
Barcode
risultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();