ultima studio scanner library integrar for code android qr-code

studio - zxing android ultima version



Android QRCode Scanner Library (6)

Android QRCode Scanner Library

Esto puede ayudarle, esta biblioteca no requiere ninguna descarga o uso de ninguna aplicación externa. Podemos integrar esto directamente en su aplicación y usarlo para escanear un código QR.

here

Este wiki te ayudará a integrarte con tu aplicación,

https://github.com/dm77/barcodescanner/blob/master/README.md

¿Qué tenemos a nuestra disposición (si es que tenemos) que podamos solicitar para el descubrimiento y extracción de datos QR en una imagen?

Si bien hasta ahora se han publicado muchos artículos que hacen referencia a la biblioteca de ZXing para el escaneo de QRCode, y muchos otros solicitan alternativas de escaneo de QRCode sin lo que yo había visto como información útil, pensé que podría preguntarle a la comunidad una vez más. Si quizás también hay medios para usar la biblioteca que no sea el lanzamiento de una actividad, pero a través de llamadas funcionales, no había visto ejemplos o personas que hablaran de esta manera.

En realidad, me desconcierta el por qué no se han agregado implementaciones nativas de la funcionalidad QRCode en la biblioteca de la cámara o en un lugar similar dentro del SDK de Google de forma nativa dentro del sistema operativo.

Llamar y solicitar otra aplicación (o incluso solicitar una descarga) no es una solución elegante y ningún usuario debe sucumbir a hacer tal cosa. Como desarrolladores, deberíamos tener acceso a una biblioteca capaz de extraer un QRCode de una imagen o marco que luego podemos eliminar los datos codificados.


En lugar de la integración de la biblioteca QRCODE ZXing, puede abrir la cámara y escanear QRCode desde cualquier lugar: el código que encontré a continuación puede serle de ayuda para escanear QRCode:

try { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes startActivityForResult(intent, 0); } catch (Exception e) { Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android"); Intent marketIntent = new Intent(Intent.ACTION_VIEW,marketUri); startActivity(marketIntent); }

Recuerde que debe tener una aplicación de escáner de código de barras con "Zxing" en el teléfono móvil, ya que primero se redirigirá al enlace de Google Play Store para descargarlo.


Si bien Sean Owen y otros que han trabajado en la biblioteca Zxing original habían brindado un enfoque para trabajar con las bibliotecas de códigos de barras durante los últimos años, Google finalmente lanzó un lanzamiento oficial con Google Play Services para el manejo de códigos QR y códigos de barras.

La biblioteca de detección de códigos de barras se describe aquí. La inclusión de estas bibliotecas hará que para una integración sin problemas. Volveré a publicar con un código de ejemplo para lograr estos resultados de una imagen capturada. En este momento, quería actualizar mi respuesta para esta versión oficial. Si esto realmente proporciona una buena manera de obtener esta información (sin saltar a través de aros y complicaciones), actualizaré con la fuente y marcaré esto como una respuesta aceptada.

La biblioteca de detección que Google ha proporcionado en el último año ha sido una biblioteca mucho más fácil para trabajar. Permite una integración rápida con las API de la cámara y extrae la información con simplicidad. Este sería el componente que sugeriría seguir con reconocimiento. A continuación se muestra un fragmento de código rápido para manejar un código Qr. Un puñado de pseudocódigo se deja allí también.

public final void analyzeFrameForQrCode(byte[] qrCodePictureF, int imageFormatF, XriteSize previewWindowSizeF) { if(!qrCodeDetectionPossible() || qrCodePictureF == null || mIsAnalyzingQrCodeFrame) { return; } ... //Bitmap conversion code Frame frame = new Frame.Builder().setBitmap(pictureTaken).build(); SparseArray<Barcode> barcodes = mBarcodeDetector.detect(frame); if(barcodes != null && barcodes.size() != 0) { Barcode qrCode = barcodes.valueAt(0);//barcodes.get(Barcode.QR_CODE); if(qrCode != null) { if(extractInformationFromQrCode(qrCode.rawValue)) { mIsRequestingBarcodeDetection = false; vibrateForQrCodeDiscovery(); ((Activity)mContext).runOnUiThread(new Runnable() { @Override public void run() { hideBarcodeDetection(true); } }); } } } ... //Cleanup and code beyond Qr related material } }

Por supuesto, hay otras llamadas disponibles que pueden ser aprovechadas. Pero en realidad solo hay un par de líneas ahí. Sin embargo, el servicio para analizar los marcos con la biblioteca no está allí por defecto en los dispositivos. Por lo tanto, debe verificar si la biblioteca está disponible (por ejemplo, cuando Internet no está disponible) antes de calcular también. Esto es una ligera molestia de ello. Había asumido que estaría disponible como actualizaciones para los dispositivos del futuro como parte de la biblioteca de asistencia o los Servicios de Google que están disponibles en todos los dispositivos. Pero necesita la comunicación primero con un servicio externo para usar estas llamadas de biblioteca. Una vez que hace esto una vez, entonces ese dispositivo es bueno desde ese momento.

En mi pequeño ejemplo, hago un brindis después de un chequeo y luego me retiro de la actividad y dejo que el usuario verifique su conexión. Esto también se puede hacer con una pequeña cantidad de código de muestra.

if(!mBarcodeDetector.isOperational()) { updateUserInstructions("The barcode library cannot be downloaded"); return false; }

Editar (Actualizar):

Ha pasado una cantidad considerable de tiempo desde que trabajé con las últimas bibliotecas de Google Play Services Vision disponibles para la detección de códigos de barras. Si bien la limitación por la necesidad de descargar la biblioteca a través de wifi es de hecho una limitación, es un proceso de una sola vez. Y seamos honestos ...

... nuestros dispositivos tendrán una conexión. La biblioteca en sí se descarga en segundo plano, por lo que ni siquiera se da cuenta de que está sucediendo a menos que haya problemas para descargarla y luego tendría que informar una medida correctiva adecuada, como habilitar una conexión a Internet para ella.

Un dato adicional es que a veces es un poco complicado cómo se integra la biblioteca en su aplicación. Usándolo como un proyecto de biblioteca funcionó en algunos dispositivos y luego falló en otros. Agregar el jar a la ruta de compilación funcionó en un número más amplio de dispositivos (podría ser todo, pero resolvió un problema). Así que, por el momento, lo haría utilizando el método secundario al incluirlo en sus proyectos.




Ya has encontrado la biblioteca que estás buscando, creo. Ver el core/ módulo:

https://github.com/zxing/zxing/tree/master/core

Solo está mirando la integración basada en Intent , pero, de hecho, el escaneo principal es su propia biblioteca independiente que puede integrar en su propia aplicación.

Creo que la integración basada en Intent es la mejor en la mayoría de los casos, simplemente porque es muy simple, y, la mayoría de las personas no tienen el tiempo para volver a implementar su propia interfaz de usuario de escaneo y demás en la parte superior del núcleo. La mayoría de los dispositivos ya tienen instalado Barcode Scanner, por lo que generalmente no necesita una descarga.

Aún así, haz tu elección. Es por eso que hay al menos dos formas de usarlo.