nuestro blog

Cruce de código de barras

Código de barras en Android

zxing_zebra_logo
La mayoría de las veces, cuando los empleados de Telaeris publican aquí, son ejemplos de la vida real relacionados con nuestros productos. Esto nos permite discutir una amplia área de temas, incluidos los códigos de barras y el uso de RFID, la seguridad o la implementación de sistemas de seguridad o consejos para dirigir una empresa. Pero en el corazón de lo que hacemos es llegar a soluciones ordenadas para problemas difíciles. Las siguientes entradas de blog son ejemplos de cómo dos pasantes en Telaeris comenzaron a crear un nuevo producto móvil gratuito para rastrear códigos de barras y etiquetas RFID desde su dispositivo móvil Android o iPhone. El sistema se llama DataLockr y se acaba de lanzar. Le recomiendo que revise la aplicación y el sistema. Lo que describen en este artículo son sus primeros pasos de cómo construir una aplicación de lectura de códigos de barras simple utilizando la biblioteca de código abierto Zxing para Android.

Este blog es para los hackers que quieren codificar. ¡Disfrutar!

Implementando una Biblioteca Zxing simplificada
Mientras estábamos pasando por el proceso de aprender a usar el Zxing Biblioteca, pronto descubrimos que era un poco molesto tratar de entender lo que estaba sucediendo en esta enorme biblioteca. Había muchos tutoriales, pero muchos de los pasos nos confundían o estaban desactualizados. Faltaban cosas en el código, o cosas que eran diferentes según la versión de la biblioteca o algo que no estaba completamente aclarado. Queríamos hacer un tutorial que ayude a cualquiera que intente implementar una biblioteca de escaneo Zxing simple a comenzar a usarla dentro de su propia aplicación.

Este tutorial usa una versión demolida de la biblioteca Zxing para enseñar los conceptos básicos de cómo implementar la biblioteca en una aplicación independiente y desplegar su propia aplicación nativa de Android. Estamos utilizando el Kit de desarrollo de Android que ejecuta SDK 19, la biblioteca de Android 4.4. La biblioteca se ha modificado para que sea un escáner de código de barras en modo retrato en lugar de la orientación horizontal predeterminada.

Puede descargar nuestra versión simplificada de la biblioteca Zxing para usar y probar aquí: CaptureActivity. Esto es diferente a la biblioteca ZXing lanzada, pero es bueno para comenzar.

Si no tiene Eclipse con el SDK de Android, descargue e instale el Kit de desarrollo de Android. Abra el SDK de Android e instale los componentes necesarios. A continuación, abra Eclipse.

Paso 1. Primero vamos a crear el proyecto.

Ir al menú superior Archivo -> nuevo -> Proyecto de aplicación Android. Nombra tu proyecto (nosotros llamamos nuestra "Aplicación de escáner"). Copie los ajustes a continuación y haga clic en los siguientes tiempos de 3 hasta la página de Crear actividad. Elija Actividad vacía y haga clic en siguiente y luego en Finalizar. La carpeta aparecerá en el lado izquierdo de la pantalla de forma predeterminada. De lo contrario, haga clic en el botón Maximizar para abrir la pantalla del proyecto en Eclipse.

Cruce de código de barras

Paso 2. Corrija los errores de tema (si no tiene ninguno, vaya al paso 3)

Si tiene errores en sus carpetas de valores, esto puede ser un problema de Eclipse. Abra todas las páginas style.xml y elimine todas las etiquetas de estilo y su contenido. También vaya a su AndroidManifest.xml y elimine el android: theme = "@ style / AppTheme” en la aplicación.

Paso 3. Lo siguiente es importar la biblioteca del escáner.

Si aún no lo ha hecho, descargue el archivo comprimido de CaptureActivty que se encuentra arriba. Ir Archivo -> Importar -> Importar código de Android existente al área de trabajo -> y abrir examinar y encuentra el código fuente de Zxing que has descargado. Marque solo el primer proyecto llamado CaptureActivity. La ruta no debe contener build / in. Haga clic en finalizar. Haga clic con el / CaptureActivity / Carpeta en la pestaña Explorador de paquetes y haga clic en propiedades -> Android y asegúrese de que la casilla de verificación "Es la biblioteca" esté marcada. Haga clic en Aceptar.

Paso 4. Ahora debemos conectar nuestra aplicación con la biblioteca del escáner.

Haga clic derecho en la carpeta de su aplicación Android y luego haga clic en propiedades -> Android. Haga clic en el botón Agregar y haga clic en CaptureActivity. Asegúrese de que aparezca una marca de verificación verde después de hacer clic en Aceptar en la pantalla de Android con el proyecto Scanner. Haga clic en Aceptar.

Paso 5. Ahora podemos comenzar a implementar el escáner en nuestra aplicación. Comience con el archivo mainActivity.java.

En la carpeta de su aplicación, vaya a / src / carpeta y abre tu mainActivity.java expediente. A continuación se muestra el código necesario. Copia y pega lo que no tienes. El código que deberá agregar estará en texto rojo. Si está obteniendo errores, necesitará importar ciertas clases. simplemente puede presionar ctrl + shift + O, y se importarán todas las importaciones necesarias.



paquete com.example.scannerapp; importar android.app.Activity; import android.content.Intent; importar android.os.Bundle; importar android.view.Menu; importar android.view.View; importar android.widget.Toast; la clase pública MainActivity extiende la actividad {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (menú del menú) {// Inflar el menú; esto agrega elementos a la barra de acción si está presente. getMenuInflater (). inflate (R.menu.main, menu); devuelve verdadero } p ublic void openScanner (vista de vista) {Intent intent = new Intent ("com.example.scannerapp.SCAN"); startActivityForResult (intención, 0000); } public void onActivityResult (int requestCode, int resultCode, Intent intent) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (este, contenido, 0) .show (); } else if (resultCode == RESULT_CANCELED) {// Handle cancel}}} } 

Hay dos funciones clave aquí:

  1. El método openScanner se ejecuta cuando se presiona un botón, y posteriormente abrirá el escáner.
  2. El método onActivityResult devuelve la cadena del código de barras leído. Desde aquí, puede abrir una nueva intención y pasar variables si desea mostrar otra pantalla después de su escaneo.

Paso 6. Ahora cambiaremos el diseño en el archivo activity_main.xml.

Ahora en tu / app / carpeta, ve al carpeta res -> diseño -> archivo activity_main.xml. Debería verse como la siguiente. Agregue el siguiente código rojo:


<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: paddingBottom = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / event_vertical_marged_marged_margin_margin". MainActivity "> <Button android: id =" @ + id / button0000 "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: layout_below =" @ + id / textView0000 "android: layout_centerHorizontal =" true " layout_marginTop = "1dp" android: text = "Scan" android: onClick = "openScanner" /> </RelativeLayout>

Esto agrega un botón, y cuando se presiona, ejecutará el método openScanner desde el mainActivity.java expediente. También es posible que deba elegir un tema. Elegí Theme.holo.

Paso 7. La última modificación es editar el archivo androidManifest.xml.

Vaya a la androidManifest.xml Archivo bajo el directorio del proyecto. El código debe tener el aspecto siguiente y, de nuevo, copiar el código rojo.



<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.scannerapp" android : versionCode = "1" android: versionName = "1.0"> <uses-sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - PERMISOS REQUERIDOS POR ZXING -> <usos-permiso android : name = "android.permission.CAMERA" /> <uses-permission android: name = "android.permission.INTERNET" /> <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! - CARACTERÍSTICAS REQUERIDAS POR ZXING -> <uses-feature android: name = "android.hardware.camera" android: required = "true" /> <uses-feature android: name = "android.hardware.touchscreen" android: required = "false" /> <uses-feature android: name = "android.hardware.telephony" android: required = "false" /> <application android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme"> <actividad android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / app_name "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <category android: name =" android.intent.category.LAUNCHER " /> </intent-filter> </activity> <actividad android: name = "com.telaeris.datalockrScanner.android.CaptureActivity" android: screenOrientation = "portrait" android: configChanges = "orientación | keyboardHidden" android: theme = " @android: style / Theme.NoTitleBar.Fullscreen "android: windowSoftInputMode =" stateAlwaysHidden "> <intent-filter> <action android: name =" android.intent.category.MAIN "/> <category android: name =" android. intent.category.LAUNCHER "/> </intent-filter> <intent-filter> <acción android: name =" com.example.scannerapp.SCAN "/> <category android: name =" android.intent.category.DEFAULT "/> </intent-filter> </activity> </application> </manifest>

Estamos agregando los permisos que requiere Android para usar la cámara e incluyendo actividades a la aplicación para saber qué archivos abrir cuando queremos abrir el escáner en el dispositivo.

Paso 8. ¡Todo listo!

Ahora debería poder compilar y ejecutar su aplicación en un dispositivo. Si hay algún error en el compilador, puede limpiar el proyecto o reiniciar el eclipse.


Agradecimientos
Este blog debe un gran agradecimiento a muchas personas:

  • Alberto Landaverde, quien realizó una pasantía con Telaeris el verano de 2012, que modificó la biblioteca Zxing y construyó la biblioteca simplificada inicial.
  • Kelly Lim, actual pasante de Telaeris, que tomó esta biblioteca y se movió más allá para construir el DataLockr Aplicación Android. Kelly también escribió el contenido de este blog.
  • Jake Pham, actual pasante de Telaeris, que realizó el tutorial aquí para asegurarse de que todo funcionaba como se anunciaba.

Manténgase atento a la próxima entrega en la que analizaremos cómo realizar el escaneo de la biblioteca ZXing en modo vertical y horizontal. Y si tiene tiempo, eche un vistazo al producto de todo su esfuerzo - DataLockr.

DataLockrLogo
Ser visto. Ser escaneado Ser compartido.

Deja un comentario

*

Actualizaciones del blog

Newsletters


hable con un representante

Contáctenos

Teléfono: 858-627-9700
Fax: 858-627-9702
-------------------------------
9123 Chesapeake Dr.
San Diego, CA 92123
-------------------------------
sales@telaeris.com