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 l'utente
privacy. A questo scopo, delega l'attività di scansione del codice
Google Play Services e restituisce solo i risultati della scansione all'app (Video 1).
L'elaborazione delle immagini avviene sul dispositivo e Google non memorizza i risultati.
o dati di immagine. L'API supporta gli stessi formati di codice del
API ML Kit Barcode Scanning e restituisce il valore
stessa Barcode
.
Questa API è ideale per le app che richiedono una scansione del codice senza interruzioni senza la necessità per un'esperienza di UI o fotocamera personalizzata. L'implementazione risiede interamente nella 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 il codice Google scanner per eseguire automaticamente la scansione dei codici a barre lontani dalla fotocamera. Quando Se gli utenti puntano i propri dispositivi verso un codice a barre, lo scanner rileva in modo intelligente e aumentare lo zoom sul codice a barre. In questo modo non è necessario eseguire lo zoom manuale regolazioni, rendendo la scansione dei codici a barre più veloce, accurata e più accessibile (guarda il 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 le 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 Repository Maven di Google e Repository centrale Maven nel BloccodependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Aggiungi la dipendenza di Google Play Services per
play-services-code-scanner
SDK 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 abbia automaticamente Google Play Services scaricare il modulo dello scanner sul dispositivo mentre l'app è installata da dal Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Puoi anche verificare esplicitamente la disponibilità dei moduli scanner e richiedere scarica tramite Google Play Services ModuleInstallaClient tramite Google Cloud.
Se non abiliti i download di moduli al momento dell'installazione o richiedi e il modulo dello scanner non è già installato caso d'uso: Google Play Services scarica il modulo dello scanner il primo 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 il la velocità del rilevatore di codici a barre configurandolo in modo da rilevare formati. Ad esempio, per rilevare solo il codice Azteca e i codici QR, crea un
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 attivare la funzionalità di zoom automatico a partire dalla versione 16.1.0, chiama
enableAutoZoom()
come mostrato in seguendo questo esempio di codice.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 l'elemento
Barcode
risultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();