¿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" 🙂

  • Cómo usar Zxing en android
  • ZXing en Android PDF417
  • ZXing cómo escanear código QR y código de barras 1D?
  • Cómo reiniciar la cámara de manera eficiente en un fragmento - Barcode Scanner
  • ¿Cómo importar ZXING a android studio?
  • Cómo usar la biblioteca de ZXing sin instalar la aplicación barcodescanner
  • ActionBar bajo notificación / barra de título
  • El paquete com.google.zxing falta en la biblioteca de códigos de barras de Zxing para Android
  • No se puede escanear QRCode a través del cliente zxing
  • Biblioteca de escáner de código de barras para android que no sea zxing
  • Mi sentencia java if no parece estar funcionando
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.