Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Escáner de código de Google (Beta)

La API de análisis de código de Google proporciona una solución completa para escanear códigos sin necesidad de que tu app solicite permiso de la cámara y, al mismo tiempo, mantiene la privacidad del usuario. Esto se logra delegando la tarea de analizar el código a los Servicios de Google Play y mostrar solo los resultados del análisis a tu app. Todo el procesamiento de imágenes se realiza en el dispositivo, y Google no almacena los resultados ni los datos de imágenes. La API admite los mismos formatos de código que la API de análisis de códigos de barras del Kit de AA y muestra el mismo objeto Barcode.

Esta API es ideal para las apps que solo necesitan escanear un código y no requieren una IU personalizada ni una experiencia de cámara. La implementación reside por completo dentro de los Servicios de Google Play, por lo que no hay un impacto significativo en el tamaño de tu app. Para casos de uso más complejos que requieren una IU personalizada, usa la API de escaneo de códigos de barras del Kit de AA directamente.

Si tienes preguntas, deseas enviar un error o necesitas ayuda, consulta la página de la comunidad del Kit de AA.

Antes de comenzar

Para preparar tu app, completa los pasos que se indican en las siguientes secciones.

Requisitos previos de la app

Asegúrate de que el archivo de compilación de tu app use los siguientes valores:

  • Un minSdkVersion de 21 o más

Cómo configurar tu app

  1. En el archivo settings.gradle de nivel superior, incluye el repositorio Maven de Google y el repositorio central de Maven en el bloque dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Agrega la dependencia de los Servicios de Google Play para el SDK de play-services-code-scanner al archivo de compilación de Gradle de tu módulo, que suele ser app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3'
    }
    
  3. Puedes configurar tu app para que los Servicios de Google Play descarguen automáticamente el módulo de análisis en el dispositivo mientras se instala la app desde Play Store.

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    También puedes verificar de manera explícita la disponibilidad del módulo de análisis y solicitar la descarga a través de la API de ModuleInstallClient de los Servicios de Google Play.

    Si no habilitas las descargas de módulos en el momento de la instalación ni solicitas la descarga explícita, los Servicios de Google Play descargarán el módulo del escáner la primera vez que se use, en caso de que no se haya instalado para otro caso de uso.

Escanear un código

1. Configura el escáner de código (opcional)

Si sabes qué formatos de códigos de barras esperas leer, puedes mejorar la velocidad del detector de códigos de barras si lo configuras para que detecte solo esos formatos. Por ejemplo, para detectar solo códigos QR y Aztec, crea un objeto GmsBarcodeScannerOptions como el del siguiente ejemplo:

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. Obtén una instancia de 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. Llama a startScan() para solicitar un análisis de código.

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. Controla el código de barras resultante.

Kotlin

val rawValue: String? = barcode.rawValue

Java

String rawValue = barcode.getRawValue();