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?

8 Solutions collect form web for “Introducción a ZXing en Android”

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' 
  • Agregar menú a ZXings barcodescanner, y apretar la vista de superficie
  • Escaneo de códigos QR sin cámara de pantalla completa
  • Cómo activar la exploración de modo masivo en zxing
  • Lectura de códigos de barras Delphi xe7, evento después de la intención que no desencadena
  • DataMatrix-codificación con zxing sólo genera 14px mapa de bits
  • Escáner de código de barras zxing en una div fija en phonegap android app
  • ¿Cómo puedo codificar caracteres usando UTF-8 en un código QR usando el proyecto Zxing?
  • Un escáner de QR dentro de un fragmento
  • GridLayoutManager spanSizeLookup error
  • Zxing Android - ¿Cómo obtener escáner / cámara no en pantalla completa?
  • Zxing modo retrato de la cámara y el paisaje en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.