Scanner di codici Google (solo Android)

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

  1. Nel file settings.gradle di primo livello, includi Repository Maven di Google e Repository centrale Maven nel Blocco dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. 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'
    }
    
  3. 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.

  1. (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();
  2. 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);
  3. 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
           });
  4. Gestisci l'elemento Barcode risultante.

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();