¿Cómo forzar el uso de zxing lib con sólo mi aplicación?

Ok, digamos que hay 3 aplicaciones diferentes que utilizan zxing lib en el teléfono. Siempre que quiera abrir zxing con mi propia aplicación android me pregunta si para completar la acción usando la aplicación 1 o la aplicación 2 o mi propia aplicación. ¿Cómo lo obligo a ejecutar sólo a través de mi aplicación sin ningún diálogo? ¿Hay alguna posibilidad de hacerlo?

EDITAR

En Adicional a CommonsWare, puede hacerlo si desea manejar el resultado del código de barras en la otra actividad.

paso 1: saltar al método denominado handleDecode en Capture Activity. Agregue estas líneas después de handleDecodeInternally (rawResult, resultHandler, código de barras);

Intent intent = new Intent(getIntent().getAction()); intent.putExtra("SCAN_RESULT", rawResult.getText()); setResult(RESULT_OK,intent); finish(); 

paso 2: Haga lo que quiera hacer en el evento onActivityResult de la otra actividad.

PS: Gracias de nuevo a CommonsWare.

En primer lugar, no hay "zxing lib". Se supone que debes utilizar la aplicación Barcode Scanner, vinculándola a tu aplicación en el nivel de actividad, idealmente usando su código IntentIntegrator . Aquí hay una aplicación de ejemplo que demuestra esto . Los creadores de ZXing específicamente no soportan ni respaldan la cocción del código fuente del escáner de código de barras en otra aplicación.

Sin embargo, dados sus síntomas, tengo que asumir que usted está intentando agregar el código de fuente del explorador de código de barras a su propia aplicación.

Usted presumiblemente tiene algo como esto en su manifiesto en el elemento de la actividad de escaneo:

  <intent-filter > <action android:name="com.google.zxing.client.android.SCAN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> 

No eres escáner de código de barras. Sin embargo, este <intent-filter> afirma que usted es Barcode Scanner.

Necesita quitar este <intent-filter> , modificar su copia del código fuente del escáner de código de barras para no requerirlo y, a continuación, iniciar la actividad de escaneo utilizando el constructor Intent basado en componentes (por ejemplo, new Intent(this, ThisIsYourRevisedScanningActivity.class) ).

Sólo incluir esto, esto ha hecho lo necesario para mí ..

 Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.setPackage(getPackageName()); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0); 

Android no le permite establecer esto por su cuenta. Sólo un usuario puede establecer la aplicación predeterminada para una acción. Si en su teléfono desea que su aplicación maneje ese evento, active la casilla Usar como predeterminado antes de seleccionar su aplicación en el selector.

Por motivos de seguridad, Android no le permite configurar su aplicación como predeterminada sin la interacción del usuario, ya que una aplicación malintencionada podría asociarse como predeterminada a varios eventos.

En realidad, usted necesita para eliminar el intento de filtro como CommonsWare dijo, por lo que debe ser como sigue:

 <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"> </activity> 

y en vez de llamar vía la intención externa usted debe llamar a zxing como:

 private final static int ACTION_ZXING_SCANNER = 0x0000c0de; //IntentIntegrator.REQUEST_CODE private void startZxingScanner() { final Intent intent = new Intent(this, com.google.zxing.client.android.CaptureActivity.class); intent.setAction(Intents.Scan.ACTION); startActivityForResult(intent, ACTION_ZXING_SCANNER); } 

y luego el resultado del proceso en onActivityResult() utilizando el código de solicitud ACTION_ZXING_SCANNER . La cadena de importación si es necesario:

 import com.google.zxing.client.android.Intents; 

nota: esto funciona para mí y he añadido zxing proyecto como un lib de mi proyecto por lo que aquí es – el "zxing lib" 🙂

  • Escáner de código de barras zxing en una div fija en phonegap android app
  • OnActivityResult Nunca se llama Phonegap Córdoba
  • Android - Barcode Scanning, Opciones? Zxing?
  • Cómo utilizar el resultado del escaneo ZXING
  • PhoneGap BarcodeScanner - ClassNotFound
  • Cómo reiniciar la cámara de manera eficiente en un fragmento - Barcode Scanner
  • ¿Cómo integrar ZXing api con cámara frontal en android?
  • Android / ZXing ya no funciona
  • Resolución fallida de: Lcom / abhi / código de barras / frag / libv2 / R $ string
  • Android Zxing cambia la orientación al retrato
  • Cómo detener la exploración continua mediante zxing-android-embedded en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.