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

¿Qué es y como se usa Jitsi Meet?

En estos días en los que medio mundo esta confinado en sus casas, la comunicación en tiempo real y preferentemente con v[...]

Ejercicios Resueltos C Sharp

1. Dado N números enteros ingresados por teclado, determine el promedio de estos 01 static void Main(string[] args) 02 {[...]

JavaFX y ApiRest – GET

En este tutorial construiremos una aplicación en JavaFX para leer datos de un servicio web Herramientas IDE Netbeans 8.x[...]

Migrar proyecto Netbeans a Eclipse

En ocasiones por motivos cualesquiera que sea queremos pasar proyectos hechos en netbeans a Eclipse, Netbeans cuenta con[...]

Blog MVC – El theme y primer controlador [p3]

Tercera parte del tutorial [Crea tu blog con el patrón MVC y php] En este post trabajaremos en el Theme del blog, agrega[...]

Imagenes en Access y Java

Aplicación en Java realida con el IDE de Netbeans 6.9 para trabajar con images en Base de Datos en Access 2003, el progr[...]