2011-08-29 20 views
15

simplemente Importé la biblioteca ZXing en mi aplicación, sé cómo configurar el putExtra función para Escanear código QR de código de barras:ZXing cómo escanear el código QR y el código de barras 1D?

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

y si me gusta para escanear un código de barras 1D:

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

pero ¿cómo hago que la aplicación pueda escanear ambas? (Código de barras 1D y 2D).

Gracias! Marco

Respuesta

27

Si sólo desea analizar tanto (y no exclusivamente estos dos):

no agregue el extra SCAN_MODE a la intención. Eso es opcional para limitar el tipo de código de barras a cierto tipo. No especifica que escaneará todos los tipos posibles.

+0

Gracias que no sabía que podía hacer eso :) funciona perfectamente! –

2

Recomiendo usar IntentIntegrator es una clase que tiene el proyecto Zxing que estoy usando con una de mis aplicaciones. He proporcionado un enlace al archivo. Encapsula el código de escaneo y es ideal para una función de escaneo simple. El método initiateScan es el que desea buscar. ¡Disfrutar!

5

Solo tiene que pasar por esta línea de código. Me funciona a la perfección como quieras.

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
       intent.setPackage("com.google.zxing.client.android"); 
       //intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
       intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE"); 
       startActivityForResult(intent, 0); 
2

se debe utilizar "SCAN_MODE" en lugar de "QR_CODE_MODE":

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

debería ser

INTENT.putExtra("SCAN_MODE", "SCAN_MODE"); 
Cuestiones relacionadas