Te sugerimos que revises esta respuesta en un entorno controlado antes de enviarlo a producción, saludos.
Solución:
Estaba integrando ZXING en una aplicación de Android y no había buenas fuentes para la entrada en general, les daré una pista sobre lo que funcionó para mí: porque resultó ser muy fácil.
Hay un repositorio git realmente útil que proporciona la zxing
proyecto de biblioteca de Android como un archivo AAR.
- https://github.com/journeyapps/zxing-android-incrustado
Todo lo que tienes que hacer es agregar esto a tu build.gradle
repositories
jcenter()
dependencies
implementation 'com.journeyapps:zxing-android-embedded:[email protected]'
implementation 'com.google.zxing:core:3.2.0'
y Gradle hace toda la magia para compilar el código y lo hace accesible en su aplicación.
Para iniciar el escáner después, use esta clase/método: De la actividad:
new IntentIntegrator(this).initiateScan(); // `this` is the current Activity
De un Fragmento:
IntentIntegrator.forFragment(this).initiateScan(); // `this` is the current Fragment
// If you're using the support library, use IntentIntegrator.forSupportFragment(this) instead.
Hay varias opciones de personalización:
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);
integrator.setPrompt("Scan a barcode");
integrator.setCameraId(0); // Use a specific camera of the device
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(true);
integrator.initiateScan();
Ellos tienen un proyecto de muestra y están proporcionando varios ejemplos de integración:
- Cualquier Orientación Captura Actividad
- Actividad de captura continua
- Actividad de escáner personalizado
- Barra de herramientasCapturar actividad
Si ya visitó el enlace, verá que acabo de copiar y pegar el código del git README. Si no, vaya allí para obtener más información y ejemplos de código.
buttion.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
new com.google.zxing.integration.android.IntentIntegrator(Fragment.this).initiateScan();
);
public void onActivityResult(int requestCode, int resultCode, Intent data)
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null)
if(result.getContents() == null)
Log.d("MainActivity", "Cancelled scan");
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
else
Log.d("MainActivity", "Scanned");
Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
else
// This is important, otherwise the result will not be passed to the fragment
super.onActivityResult(requestCode, resultCode, data);
dependencies
compile 'com.journeyapps:zxing-android-embedded:[email protected]'
compile 'com.google.zxing:core:3.2.1'
compile 'com.android.support:appcompat-v7:23.1.0'
Cualquiera que tenga los mismos problemas, siga estos sencillos pasos:
Importar el proyecto android
de descargado zxing-master
archivo zip usando la opción Import project (Eclipse ADT, Gradle, etc.)
y agregue las 2 líneas de códigos en el nivel de su aplicación build.gradle
archivo y ya está listo para ejecutar.
Así de sencillo, jejeje…
dependencies
// https://mvnrepository.com/artifact/com.google.zxing/core
compile group: 'com.google.zxing', name: 'core', version: '3.2.1'
// https://mvnrepository.com/artifact/com.google.zxing/android-core
compile group: 'com.google.zxing', name: 'android-core', version: '3.2.0'
Siempre puedes encontrar la última versión core
y android core
de los siguientes enlaces:
https://mvnrepository.com/artifact/com.google.zxing/core/3.2.1 https://mvnrepository.com/artifact/com.google.zxing/android-core/3.2.0
ACTUALIZACIÓN (29.05.2019)
Agregue estas dependencias en su lugar:
dependencies
implementation 'com.google.zxing:core:3.4.0'
implementation 'com.google.zxing:android-core:3.3.0'
valoraciones y comentarios
Te invitamos a ayudar nuestra faena ejecutando un comentario y dejando una puntuación te damos las gracias.