
L'API Google Code Scanner fornisce una soluzione completa per la scansione dei codici senza che la tua app richieda l'autorizzazione di accesso alla fotocamera, preservando al contempo la privacy degli utenti. Ciò viene delegato delegando l'attività di scansione del codice a Google Play Services e restituendo solo i risultati della scansione per la tua app. Tutte le elaborazioni di immagini avvengono sul dispositivo e Google non memorizza i risultati o i dati di immagine. 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 devono semplicemente scansionare un codice e non richiedono un'esperienza personalizzata con la UI o con la fotocamera. L'implementazione risiede interamente in Google Play Services, pertanto non ha un impatto significativo sulle dimensioni della tua app. Per i casi d'uso più complessi che richiedono un'interfaccia utente personalizzata, utilizza direttamente l'API ML Kit Barcode Scanning.
Se hai domande, vuoi segnalare un bug o hai bisogno di assistenza, consulta la pagina della community del ML Kit.
Prima di iniziare
Per preparare la tua app, completa i passaggi nelle sezioni seguenti.
Configura la tua app
Nel file di primo livello
settings.gradle
, 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.0.0' }
Puoi configurare la tua app per il download automatico del modulo scanner sul dispositivo da parte di Google Play Services mentre l'app è installata 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 scanner e richiedere il download tramite l'API ModuleInstallClient di Google Play Services.
Se non abiliti i download del modulo al momento dell'installazione o richiedi un download esplicito, Google Play Services scaricherà il modulo dello scanner la prima volta che viene utilizzato, se non è già stato installato per un altro caso d'uso.
Scansionare un codice
1. (Facoltativo) Configurare 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 il codice azteco 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();
2. Ottieni un'istanza di GmsBarcodeScanner
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);
3. 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 });
4. Gestire il codice a barre risultante
Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();