2011-11-11 35 views
13

Agregué Zying aplicación de Android a mi aplicación como biblioteca. Luego edité Manifest.xml e intenté usar el integrador de intenciones. Sin suerte.¿Cómo integrar Zxing sin instalar la aplicación de escáner de código de barras?

La descarga de la aplicación del escáner no es razonable.

Por cierto:

Intent scanIntent = new Intent("com.google.zxing.client.android.SCAN"); 
scanIntent.setPackage("com.google.zxing.client.android"); 

11-11 15:15:27.793: WARN/System.err(15384): android.content.ActivityNotFoundException: No 
Activity found to handle Intent { act=com.google.zxing.client.android.SCAN 
cat=[android.intent.category.DEFAULT] pkg=com.google.zxing.client.android (has extras) } 
+0

http://stackoverflow.com/questions/7510430/qr-reader-in-android/7510615#7510615 ,, compruebe esta pregunta, si esto ayuda .. –

+0

Hola, esta [página para java y mapa de bits] (http://code.google.com/p/zxing/wiki/DeveloperNotes), si tomas una foto con una cámara y luego das la foto tomada como tóxica, funcionará, pero esto es solo una idea. – kameny

+0

@Onuray ¿Cómo resolvió el problema? – Erum

Respuesta

4

+1 de tu pregunta. Intenté esto pero no tuve suerte luego agregué sus archivos de código en mi aplicación. Si lo deseas, también puedes hacer eso. Aquí ia un enlace:

http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid

Si recibe ninguna manera mejor entonces que me haga saber.

+0

Agregar el proyecto zying de Android como una biblioteca debería ser el truco, pero no funciona. De todos modos, ¿así que agregaste los códigos fuente y usaste la llamada intencionada y funcionó? –

+0

necesita ir un poco a los códigos y encontrar la actividad que hace la tarea principal para usted y usar esa actividad y todo lo demás se encargará. –

+0

cómo esta es una respuesta correcta !! algunas explicaciones habrían sido buenas !! – Fay007

15

Está intentando acceder al escáner ZXing de dos maneras directamente conflictivas. El propósito del IntentIntegrator que proporciona ZXing es simplificar el acceso a la aplicación de escáner externo creando el Intento para usted con todas las constantes y banderas apropiadas. Si no desea instalar y ejecutar la aplicación de escáner externo desde Android Market en un dispositivo, IntentIntegrator no es para usted. Esto también es cierto con el código Java que ha publicado, ya que es esencialmente el mismo Intento que el integrador crearía para iniciar la aplicación externa.

Si integra ZXing en su proyecto como una biblioteca, los componentes se vuelven parte de su aplicación y deben ser referenciados como tales. Por ejemplo, una declaración en AndroidManifest.xml necesita ser añadido como:

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

Compruebe que está utilizando el nombre correcto en este caso para la actividad y la acción, ya que estos tienen que hacer referencia a la biblioteca. A continuación, puede iniciar la actividad escáner desde el código Java utilizando la siguiente:

int REQUEST_SCAN; //Request code for Intent result 
String packageString = "com.yourapplication.packagename"; 

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
intent.setPackage(packageString); 
//Add any optional extras to pass 
intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
//Launch 
startActivityForResult(intent, REQUEST_SCAN); 

Aviso la acción Intención coincide con la declaración en el manifiesto, pero el paquete es esta aplicación, no la aplicación Android Market ZXing.

HTH

+0

Pregunta Completa la acción usando la aplicación de la cámara y Mi aplicación cuando hago clic en el escaneo. ¿Cómo puedo deshacerme de mi aplicación en la ventana emergente para hacer que la aplicación de la cámara sea la predeterminada? He intentado eliminar el filtro de intención con la acción "com.google.zxing.client.android.SCAN", que ni siquiera muestra la ventana emergente ahora. –

+0

esto me ayudó, ¡gracias! – Yohannes

Cuestiones relacionadas