Uso de ZXing para crear una aplicación de escaneo de códigos de barras Android
He estado buscando cómo agregar un escáner de código de barras a mi aplicación. ¿Alguien sabe de ejemplos o sabe cómo hacerlo fácilmente? Cualquier ayuda es muy apreciada.
- Cámara Android centrada sólo una vez
- Cómo leer varios códigos qr de una imagen usando la biblioteca zxing
- Incorporar la biblioteca Zxing sin utilizar la aplicación Scanner de códigos de barras
- ZXing cómo escanear código QR y código de barras 1D?
- Resolución fallida de: Lcom / abhi / código de barras / frag / libv2 / R $ string
- Cómo utilizar el resultado del escaneo ZXING
- Orientación de Android zxing: ResultMetaData es null, Get Rotation / Orientation
- ZXing Android Generar código de barras 1D
- ActionBar bajo notificación / barra de título
- Uso de zxing en Google Glass
- Uso de zxing Barcode Scanner dentro de una página web
- Lanzamiento de un fragmento después de ZXing 2.0 QR-Code Scan
- El uso del escáner de código de barras de Zxing causa la excepción de seguridad
El proyecto ZXing proporciona una aplicación autónoma de lectura de código de barras que, a través del mecanismo de intenciones de Android, puede ser llamada por otras aplicaciones que desean integrar el escaneado de códigos de barras.
La forma más sencilla de hacerlo es llamar al ZXing SCAN
Intent
de su aplicación, de la siguiente manera :
public Button.OnClickListener mScan = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0); } }; public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan } else if (resultCode == RESULT_CANCELED) { // Handle cancel } } }
Al presionar el botón vinculado a mScan
se lanzaría directamente a la pantalla del escáner de códigos de barras ZXing (o se bloquearía si ZXing no está instalado). Una vez que un código de barras ha sido reconocido, recibirá el resultado en su Activity
, aquí en la variable de contents
.
Para evitar la caída y simplificar las cosas para usted, ZXing ha proporcionado una clase de utilidad que puede integrar en su aplicación para hacer la instalación de ZXing más suave, redirigiendo al usuario al Android Market si no lo tienen instalado ya.
Por último, si desea integrar el escaneado de códigos de barras directamente en su aplicación sin depender de tener instalada la aplicación ZXing independiente, ¡entonces es un proyecto de código abierto y puede hacerlo! 🙂
Edit: Alguien editó esta guía en esta respuesta (suena un poco extraño, no puedo dar fe de su precisión, y no estoy seguro de por qué están usando Eclipse en 2015):
Paso a paso para configurar zxing 3.2.1 en eclipse
- Descargar zxing-master.zip desde " https://github.com/zxing/zxing "
- Descomprimir zxing-master.zip, Usar eclipse para importar el proyecto "android" en zxing-master
- Descargar core-3.2.1.jar desde " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ "
- Crear carpeta "libs" en el proyecto "android" y pegar cor-3.2.1.jar en la carpeta libs
- Haga clic en proyecto: elija "propiedades" -> "Java Compiler" para cambiar el nivel a 1.7. A continuación, haga clic en "Android" cambiar "Project build target" a android 4.4.2+, porque el uso de 1.7 requiere la compilación con Android 4.4
- Si "CameraConfigurationUtils.java" no existe en "zxing-master / android / app / src / main / java / com / google / zxing / client / android / camera /". Puede copiarlo desde "zxing-master / android-core / src / main / java / com / google / zxing / client / android / camera /" y pegar en su proyecto.
- Limpie y construya el proyecto. Si su proyecto muestra error acerca de "switch – case", debe cambiarlos a "if – else".
- Terminado. Limpie y construya el proyecto. Puede hacer clic en "Proprties"> "Android"> haga clic en "Is Libraries" para usar en su proyecto.
Tuve un problema con implimenting el código hasta que encontré un sitio web (no lo puedo encontrar de nuevo ahora) que explicó que es necesario incluir el nombre del paquete en el nombre de la intent.putExtra.
Sería tirar de la aplicación, pero no reconocería ningún código de barras, y cuando lo cambié de.
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
a
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
Funcionó muy bien. Sólo un consejo para cualquier otro programador andorid novato.
Usar el IntentInegrator proporcionado es mejor. Le permite pedir a su usuario que instale el escáner de código de barras si no lo tiene. También le permite personalizar los mensajes. La constante IntentIntegrator.REQUEST_CODE contiene el valor del código de solicitud para el onActivityResult para comprobar en el bloque anterior si.
IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR
IntentIntegrator.java
Si desea incluir en su código y no utilizar el IntentIntegrator que la biblioteca de Zxing recomienda que pueda utilizar algunos de estos puertos
http://code.google.com/p/android-zxinglib/
http://code.google.com/p/android-quick-response-code/
Yo uso el primero y funciona perfecto! Tiene un proyecto de muestra para probarlo
El uso de Zxing de esta manera requiere que un usuario también instale la aplicación de escáner de código de barras, que no es ideal. Lo que probablemente desee es agrupar Zxing en su aplicación directamente.
Recomiendo encarecidamente el uso de esta biblioteca: https://github.com/dm77/barcodescanner
Toma todos los problemas locos de la construcción que usted va a funcionar en intentar integrar Xzing o Zbar directamente. Utiliza esas bibliotecas bajo las portadas, pero las envuelve en una API muy simple de usar.
La detección de códigos de barras ya está disponible en los servicios de Google Play . Código de laboratorio del proceso de instalación, aquí están los documentos de api , y un proyecto de ejemplo .
Puede utilizar esta guía de inicio rápido http://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start/ con el proyecto de ejemplo simple para construir la aplicación de Android sin IntentIntegrator.
- Cómo generar automáticamente getters y setters en Android Studio
- Evite pasar null como raíz de vista (necesita resolver los parámetros de diseño en el elemento raíz del diseño hinchado)