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

  • Uso de ZXing para crear una aplicación de escaneo de códigos de barras Android
  • ¿Cómo mostrar un código de barras 1-D de cadena en Android?
  • Escáner de código de barras ZXing en diseño personalizado en fragmento
  • Android / ZXing ya no funciona
  • ¿Cómo incluir la biblioteca Zxing en el proyecto android?
  • Llamar escáner de código de barras en un clic de botón en la aplicación android
  • Android Zxing cambia la orientación al retrato
  • ¿Cómo importar ZXING a android studio?
  • Conflicto Android drawable de la identificación del recurso?
  • Biblioteca de escáner de código de barras para android que no sea zxing
  • Android: El código QR generado que usa Zxing tiene márgenes (no es apropiado para el área)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.