Introducción a ZXing en Android

Estoy tratando de agregar ZXing a mi proyecto (agregar un botón que llama al escáner a la prensa). Encontré esto: http://groups.google.com/group/android-developers/browse_thread/thread/788eb52a765c28b5 y por supuesto la casa de ZXing: http://code.google.com/p/zxing/ , pero todavía couldn 't averiguar qué incluir en el proyecto classpath para que todo funcione!

Por ahora, he copiado las clases en el primer enlace a mi proyecto (con algunos cambios de nombre de paquete), y se ejecuta, pero se bloquea después de presionar el botón y tratar de instalar el escáner de código de barras.

Algún código:

private void setScanButton(){ Button scan = (Button) findViewById(R.id.MainPageScanButton); scan.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { IntentIntegrator.initiateScan(MyActivity.this); } }); } 

Error resultante (desde logcat):

 06-13 15:26:01.540: ERROR/AndroidRuntime(1423): Uncaught handler: thread main exiting due to uncaught exception 06-13 15:26:01.560: ERROR/AndroidRuntime(1423): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://search?q=pname:com.google.zxing.client.android } 

¿Ideas?

Ve aquí para enlaces.

En la actividad que desea activar, una exploración de código de barras incluye

 IntentIntegrator.initiateScan(YourActivity.this); 

y luego también incluyen:

 public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan TextView } else if (resultCode == RESULT_CANCELED) { // Handle cancel } } }; 

La aplicación de escáner de código de barras se encargará de la exploración real. Si la aplicación Barcode Scanner no está instalada, el integrador les pedirá que lo instalen.

———– De nEx.Software —————

En primer lugar, ZXing no podrá solicitar automáticamente al usuario que descargue desde el Market en un emulador, porque no hay Mercado en el emulador. Necesitará instalar manualmente el APK del escáner de códigos de barras en el emulador.

En segundo lugar, ya que el emulador no emular una cámara, Barcode Scanner probablemente no le hará mucho bien. Lo más probable es que usted va a tener que probar esto en un dispositivo.

Sólo tienes que añadir este código a tu archivo de manifiesto, dentro de la etiqueta de la application :

  <activity android:name="com.google.zxing.client.android.CaptureActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="com.google.zxing.client.android.SCAN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

A continuación, agregue el siguiente permiso, si aún no se ha agregado, en la parte superior del archivo:

 <uses-permission android:name="android.permission.CAMERA" /> 

Comprueba tu AndroidManifest si has dado los atributos " android: name " correctamente para las Actividades recién agregadas. Tienes " ActivityNotFoundException ", principalmente porque puedes usar un nombre de paquete diferente y ZXing está usando el nombre del paquete " com.google.zxing.client.android ". Cuando cargue la primera Actividad del ZXing, déle la ruta de clase absoluta no la ruta relativa. Entonces su error desaparecerá.

aplicación de escáner de código de barras no está instalado en su emulador que está dando esta exception.Below enlace proporciona paso a paso guía de cómo instalar la aplicación de terceros en el emulador:

Instalar la aplicación en el emulador

si usas el zxing por primera vez, te recomiendo este proyecto * 1 *, es una parte de zxing, todo lo que necesitas es importar el proyecto y ejecutarlo. Este proyecto es un intento de hacer trabajar con códigos QR en Android un poco más fácil. Con muy recomendable a bigenner.buena suerte. Por fin, gracias Sean Owen;

  1. Encienda la tarjeta SD para el emulador.
  2. Copiar el enlace a BarcodeScaner encontrado en la página de descarga de ZXing
  3. Abrir el navegador en el emulador y apuntar a vincular el cuadro de edición
  4. Introduzca el adb shell input text 'https://code.google.com/p/zxing/downloads/detail?name=BarcodeScanner-4.5.1.apk&can=2&q=' terminal y el comando adb shell input text 'https://code.google.com/p/zxing/downloads/detail?name=BarcodeScanner-4.5.1.apk&can=2&q=' – el enlace se encuentra en la página de descarga de ZXing
  5. Enlace copiado al navegador para poder descargarlo e instalarlo. Esto soluciona el problema descrito.

Utilizo Zxing en una pestaña (un Fragmento) y uso la biblioteca de soporte (para componentes de Diseño de Material) así que tuve que llamarlo así:

IntentIntegrator integrador = nuevo IntentIntegrator (getActivity ()); integrator.forSupportFragment (this) .initiateScan ();

luego en onActivityResult ()

  if (resultCode == Activity.RESULT_OK) { if (requestCode == IntentIntegrator.REQUEST_CODE) { String contents = data.getStringExtra("SCAN_RESULT"); String format = data.getStringExtra("SCAN_RESULT_FORMAT"); Log.i(TAG, "Barcode Result: " + contents); etc... } } 

y en mi Manifest.xml

  <activity android:name="com.google.zxing.client.android.CaptureActivity" android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="stateAlwaysHidden" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="com.google.zxing.client.android.SCAN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

Todo funciona muy bien ahora. No he tenido éxito sólo con intents y startActivityForResult (). El escáner iniciaría y arreglaría el QRcode pero no volvería.

En mi build.grade, tengo:

repositories {mavenCentral () maven {url " https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/ "}}

 compile 'com.google.zxing:core:3.2.1' compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar' compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar' 
  • Zxing onActivityResult no se llama en Fragmento sólo en Actividad
  • Biblioteca de escáner de código de barras para android que no sea zxing
  • Alternativa a la biblioteca de lectores QR de zxing para Java / Android?
  • Utilizar la biblioteca de Zxing en PreviewFrame para aumentar la realidad
  • Cómo usar la biblioteca de ZXing sin instalar la aplicación barcodescanner
  • ¿Cómo puedo codificar caracteres usando UTF-8 en un código QR usando el proyecto Zxing?
  • ZXing doble imagen / superposición después de escanear
  • PhoneGap BarcodeScanner - ClassNotFound
  • ¿Puedo usar Zxing para fines comerciales?
  • Escáner de código QR
  • Uso de zxing Barcode Scanner dentro de una página web
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.