Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Android / Crea tu lector de códigos QR

Crea tu lector de códigos QR

Por jc mouse lunes, febrero 16, 2015

En este post desarrollaremos una aplicación que nos permitirá leer un código QR y capturar la información que contiene y que es la que nos interesa.

Necesitamos

– IDE Eclipse con android SDK instalado

– Librería android-integration-1.7.jar

– Aplicación Barcode Scanner instalado en tu celular

Tiempo: 10 minutos

Nivel: Intermedio

Tutorial

Paso 1. El proyecto

Crea un proyecto Android en Eclipse, se llamara «QRScanCode«,  deja como esta el MainActivity que se crea por defecto.

Añade la librería «android-integration-1.7.jar» al proyecto android, puedes descargar la librería en este enlace.

Paso 2. La interfaz

El archivo activity_main.xml  estará compuesto por un button y un textview, el código es el siguiente:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

 <Button
        android:id="@+id/btnScan"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"        
        android:text="@string/txt_scan" />

    <TextView
        android:id="@+id/tvResult"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Hacemos uso de un String «txt_scan» para el contenido del botón, su valor es «Comenzar a escanear»

Paso 3. El código

La clase «MainActivity»  tendrá el siguiente código:

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
// import zxing 
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

public class MainActivity extends Activity {

 private Button btnScan;
 private TextView tvResult;

 @Override 
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //------------------------
  btnScan = (Button) findViewById(R.id.btnScan);
  tvResult = (TextView) findViewById(R.id.tvResult);
  //evento cuando se presiona el boton
  btnScan.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
           //se inicia el barcode Scanner
           IntentIntegrator.initiateScan(MainActivity.this); 
          }
  });
  //------------------------ 
 }//end: onCreate

 /**
 * Cuando termina de leer el código QR muestra el resultado en el textview 
 * @param requestCode The integer request code originally supplied to startActivityForResult(), allowing you to identify who this result came from.
 * @param resultCode The integer result code returned by the child activity through its setResult().
 * @param data An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * */
 public void onActivityResult(int requestCode, int resultCode, Intent data) {
     IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
     if ( scanResult != null ) {         
         String contentData = "SCAN_RESULT: " + data.getStringExtra("SCAN_RESULT") + "\n";
         contentData += "SCAN_RESULT_FORMAT: " + data.getStringExtra("SCAN_RESULT_FORMAT") + "\n";
         byte[] rawBytes = data.getByteArrayExtra("SCAN_RESULT_BYTES");
         contentData += "SCAN_RESULT_BYTES: " + ( rawBytes == null ? 0 : rawBytes.length ) + "\n";
         contentData += "SCAN_RESULT_ERROR_CORRECTION_LEVEL: " + data.getStringExtra("SCAN_RESULT_ERROR_CORRECTION_LEVEL");         
         tvResult.setText(contentData);         
     }
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

Explicación

Nuestro lector de código QR esta formado por un botón y un textview, cuando se presiona el botón, se llama a la aplicación «Barcode Scanner«, si esta no esta instalada, se te pedirá su instalación para continuar. Si esta instalada, se iniciara y ya podrás escanear un código QR, la aplicación entonces queda a la espera de una respuesta en el método «onActivityResult«. Cuando se procede a escanear un código QR el valor pasa a nuestra aplicación en la variable «data«, la procesamos y la mostramos en pantalla.

barcode scan

android qr

Archivos disponibles para descarga

android-integration-1.7.jar

Barcode Scanner (APK)

Proyecto en Eclipse  QRScanCode

🙂

Tags

Artículos similares

Crea un Themes WordPress con Netbeans – Configuracion

Este post te enseña una manera que tengo de configurar Netbeans para crear y ejecutar un proyecto php utilizando el CMS[...]

Detectar un punto dentro de un polígono HTML5

En un ejemplo anterior [Seleccionar y mover shapes en html5] se utilizo un método sencillo para detectar si un punto se[...]

Exportar registros MySQL a Excel

Java Excel API es un API para java que permite a los desarrolladores leer y escribir en hojas de cálculo Excel. jexcelap[...]

Microservicio REST Java con Spark – Parte 2

Segunda y ultima parte del post dedicado a la creación de un microservicio en lenguaje java utilizando el framework Spar[...]

Reconocimiento Óptico de Caracteres con Tess4J

El reconocimiento óptico de caracteres o OCR (Optical Character Recognition), es un proceso dirigido a la digitalización[...]

Transición de imágenes al estilo PowerPoint

¿Qué es una transición? Una transición es un efecto de movimiento que se da entre una imagen y la siguiente en una prese[...]