Capturar un QRCode con la libreria ZXing en Android

publicado por: Anonymous

Intento hacer un lector QRCode usando la librería ZXing pero no encuentro ni las dependencias necesarias para incrustar y un ejemplo básico para empezar.

Quiero solo eso que salga la cámara con la barra roja y devuelve el código QRCode escaneado.

Acabo de encontrar un .jar
https://mvnrepository.com/artifact/com.google.zxing/core/3.3.0

solución

Tenes que ir a tu archivo “build.gradle” en la carpeta “Gradle Scripts” y en las dependencias agregar :

compile 'com.journeyapps:zxing-android-embedded:3.5.0'

Te quedaría algo como:

dependencies {
    .
    .
    compile 'com.journeyapps:zxing-android-embedded:3.5.0'
    .
    .
}

Luego le das al botón que te aparece arriba a la derecha “Sync Now”

Eso lo haces para que el Adroid Studio agregue la libreria al proyecto.

Te dejo un codigo simples de como podes obtener el QR en un Activity

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

public class ScannerActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scanner);

        IntentIntegrator intent = new IntentIntegrator(this);
        intent.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);

        intent.setPrompt("Scan");
        intent.setCameraId(0);
        intent.setBeepEnabled(false);
        intent.setBarcodeImageEnabled(false);
        intent.initiateScan();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (result != null){
            if (result.getContents() == null){
                Toast.makeText(this, "Cancelaste el escaneo", Toast.LENGTH_LONG).show();
            }
            else{
                Toast.makeText(this, result.getContents(), Toast.LENGTH_LONG).show();
            }
        }
        else
        {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *