La API de escáner de código de Google proporciona una solución completa para escanear código
sin necesidad de que tu app solicite permiso para usar la cámara, y preservar la disponibilidad
la privacidad. Esto se logra delegando la tarea de escanear el código a
Servicios de Google Play y muestra solo los resultados del análisis a tu app (Video 1).
Todo el procesamiento de imágenes se realiza en el dispositivo, y Google no almacena los resultados
o datos de imágenes. La API admite los mismos formatos de código que la
API de ML Kit Barcode Scanning y muestra el
mismo Barcode
.
Esta API es ideal para las apps que requieren un análisis de código sin interrupciones ni necesidad para obtener una IU personalizada o una experiencia de cámara. La implementación reside completamente Servicios de Google Play, que garantiza un impacto mínimo en el tamaño de la app
A partir de la versión 16.1.0, puedes habilitar el zoom automático para permitir que el código de Google para escanear automáticamente los códigos de barras que se encuentran lejos de la cámara. Cuándo los usuarios apuntan sus dispositivos a un código de barras, el escáner detectará de forma inteligente y acercar el código de barras. Esto elimina la necesidad de hacer zoom manual ajustes, lo que permite que el escaneo de códigos de barras sea más rápido, preciso y accesible. (consulta el video 2).
Video 1: Integración del escáner de código de Google | Video 2: Efecto de zoom automático |
Para casos de uso más complejos que requieren una IU personalizada, te recomendamos usar la directamente a la API de escaneo de códigos de barra del Kit de AA.
Si tienes preguntas, quieres enviar un informe de errores o necesitas asistencia, consulta la Página de la comunidad del ML Kit.
Antes de comenzar
Para preparar tu app, completa los pasos que se indican en las siguientes secciones.
Cómo configurar tu app
En tu archivo
settings.gradle
de nivel superior, incluye el repositorio de Maven de Google y El repositorio central de Maven, en el BloquedependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Agrega la dependencia de los Servicios de Google Play para
play-services-code-scanner
. SDK al archivo de compilación de Gradle de tu módulo, que suele serapp/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
Puedes configurar tu app para que use los Servicios de Google Play automáticamente descarga el módulo del escáner en el dispositivo mientras la app está instalada desde Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
También puedes comprobar de forma explícita la disponibilidad y la solicitud del módulo de análisis descargar a través de los servicios de Google Play ModuleInstallClient API
Si no habilitas las descargas de módulos en el momento de la instalación ni solicitas descargas, y el módulo de escáner no está instalado para otro caso de uso: Los Servicios de Google Play descargan el módulo de escáner tiempo de uso.
Escanear un código
Implementa los siguientes pasos para escanear un código de barras.
Opcional: Configura el escáner de código.
Si sabes qué formatos de códigos de barras leerás, puedes mejorar la del detector de códigos de barras configurándolo para que solo detecte aquellos formatos. Por ejemplo, para detectar solo códigos QR y Aztec, crea una
GmsBarcodeScannerOptions
como en el 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();
De forma predeterminada, el zoom automático está desactivado. Para habilitar la función de zoom automático a partir de la versión 16.1.0, llama a
enableAutoZoom()
como se muestra en siguiente ejemplo de código.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();
Obtén una instancia de
GmsBarcodeScanner
. como se muestra en el ejemplo de código: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);
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 });
Controla el
Barcode
resultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();