2011-06-29 26 views
8

Me gusta decodificar el código QR directamente en mi aplicación, no quiero redirigir mi aplicación a otro intento. Intento mucho encontrar cualquier API o biblioteca, desde la cual pueda decodificar el código QR, pero no lo logro.Cómo decodificar el código QR

Alguien tiene alguna idea de cómo puedo decodificar el código QR en mi aplicación o archivo de biblioteca desde el que puedo decodificar el código QR.

+2

He aquí una pregunta similar con una respuesta aceptada: http://stackoverflow.com/questions/5171294/decoding-a-qr-code-in-an-android-application – Mudassir

Respuesta

13

Zxing es una excelente biblioteca para códigos QR. Encontrará lo que necesita allí, incluido un proyecto de muestra de Android.

6

Aquí hay un ejemplo de cómo logro decodificar 1D Código de Barras y 2d Códigos QR utilizando Zxing libraryin Android.

QR DECODE

 Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
    intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
    startActivityForResult(intent, REQUEST_BARCODE); 

    Toast toast = Toast.makeText(this, "Start scanning QR code", Toast.LENGTH_SHORT); 
    toast.show(); 

CÓDIGO DE BARRAS DECODE

 Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
    intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
    startActivityForResult(intent, REQUEST_BARCODE); 

    Toast toast = Toast.makeText(this, "Start scanning Barcode", Toast.LENGTH_SHORT); 
    toast.show(); 

Este código está trabajando en Android Samsung Galaxy S (versión 2.2). Si desea comprobar los diferentes modos de escaneo comprobar este enlace: Zxing Intents.java

Saludos

+0

¿Cuál es el valor de la variable REQUEST_BARCODE? ¿Solo estas 3 líneas pueden escanear códigos de barras o cualquier clase extra requerida? En mi código obtengo una excepción No Activity found? –

+0

private static final int REQUEST_BARCODE = 0; ¿Incluyó la actividad en AndroidManifest.xml? – Iker

0
static final String ACTION_SCAN = "com.google.zxing.client.android.SCAN"; 


// Bar Code 

public void scanBarCode(View v) { 

     try { 
      //start the scanning activity from the com.google.zxing.client.android.SCAN intent 

      Intent intent = new Intent(ACTION_SCAN); 

      intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 

      startActivityForResult(intent, 0); 

     } catch (ActivityNotFoundException anfe) { 

      //on catch, show the download dialog 

      showDialog(AndroidBarcodeQrExample.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show(); 
     } 
    } 


// QR Code 

    public void scanQR(View v) { 

     try { 

      //start the scanning activity from the com.google.zxing.client.android.SCAN intent 

      Intent intent = new Intent(ACTION_SCAN); 

      intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 

      startActivityForResult(intent, 0); 

     } catch (ActivityNotFoundException anfe) { 

      //on catch, show the download dialog 

      showDialog(AndroidBarcodeQrExample.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show(); 
     } 
    } 
4

Ahora puede utilizar el BarcodeDetector dentro de la nueva Android Mobile Vision API

Aquí es un ejemplo https://github.com/Gnzlt/AndroidVisionQRReader

+1

¡Gracias! Tantas respuestas sobre el uso de bibliotecas de terceros. Fue sorprendentemente difícil encontrar una forma nativa de hacer esto. ¿Podría decirme desde qué nivel de API es compatible? Mi aplicación usa API 17: Android 4.2 (Jelly Bean). ¿Puedo seguir usando la API de visión? – Isuru

+0

¡Por supuesto que puedes! Afortunadamente, está basado en los Servicios de Google Play, por lo que puedes utilizarlo incluso con API 9 (Gingerbread) – Gonzalo

+0

Eso es increíble. ¡Gracias! – Isuru

Cuestiones relacionadas