android - samsung - Integre el escáner de códigos QR ZXing sin instalar BarCode Scanner
escanear codigo qr android (7)
Estoy tratando de integrar el código QR de ZXing en mi aplicación de Android sin instalar la aplicación BarCode Scanner. He seguido los pasos como:
1) En primer lugar he descargado el archivo ZXing.zip y lo extraigo
2) abra el proyecto ZXing como un proyecto existente de android y luego vaya a la carpeta android y abra la carpeta android e incluya también el archivo core.jar en el proyecto ZXing llamado CaptureActivity.
3) He usado el proyecto CaptureActivity como una biblioteca en mi proyecto llamado ''QRCodeSample''. (Problema al incluir CaptureActivity como una biblioteca)
4) Mi código es el siguiente3:
public class QRCodeSampleActivity extends Activity {
Button b1;
static String contents;
public static final int REQUEST_CODE = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
/*Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
"QR_CODE_MODE");
startActivityForResult(intent, 0);*/
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Log.i("Barcode Result", contents);
Intent i1 = new Intent(QRCodeSampleActivity.this, webclass.class);
startActivity(i1);
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
Log.i("Barcode Result","Result canceled");
}
}
}
}
El archivo manifiesto es:
<uses-permission android:name="android.permission.CAMERA"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<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="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>
<activity
android:label="@string/app_name"
android:name=".QRCodeSampleActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".webclass"></activity>
</application>
</manifest>
y su biblioteca no está agregando también
Cuando intento ejecutar mi proyecto, el mensaje de error es:
No se puede crear una instancia de la actividad ComponentInfo {com.qr.code / com.qr.code}: java.lang.ClassNotFoundException: com.qr.code en el cargador dalvik.system.PathClassLoader [/data/app/com.qr.code-1-1 .apk]
Después de importar Zxing como proyecto existente, Propiedades> Java Buildpath> Verificar "es biblioteca" (botón de verificación) y luego intente agregar Zxing como biblioteca.
Asegúrese de que
webclass.class
exista en suQRcodesampleActivity.java
Finalmente obtuve la respuesta,
A partir de ADT 14, los campos de recursos (como R.id.decode) ya no son constantes cuando se definen en proyectos de biblioteca
Así que en la biblioteca de ZXing-> Android-> com.google.zxing.client.android.CaptureActivityHandler.java y DecodeHandler.java
Reemplace ambas declaraciones de casos de cambio de estas clases con if-else, y luego importe esta biblioteca ZXing a su proyecto ...
El resto de la codificación de mi propio proyecto es igual ... solo el problema con las clases de la biblioteca, ya que estas no se actualizan según ADT 14 ...
Kanika
MaterialBarcodeScanner: lector de código de barras fácil de usar para su proyecto de Android (utiliza la API de Google Mobile Vision).
Proporcionar la dependencia gradle
compile ''com.edwardvanraak: MaterialBarcodeScanner: 0.0.6-ALPHA''
Construye un MaterialBarcodeScanner
private void startScan() { /** * Build a new MaterialBarcodeScanner */ final MaterialBarcodeScanner mBarcodeScanner = new MaterialBarcodeScannerBuilder() .withActivity(MainActivity.this) .withEnableAutoFocus(true) .withBleepEnabled(true) .withBackfacingCamera() .withText("Scanning...") .withResultListener(new MaterialBarcodeScanner.OnResultListener() { @Override public void onResult(Barcode barcode) { barcodeResult = barcode; result.setText(barcode.rawValue); } }) .build(); mBarcodeScanner.startScan(); }
Conéctalo a un botón.
fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startScan(); } });
¡Empieza a escanear!
Tuve el mismo problema y luego de algunas horas luchando con él, finalmente logré resolverlo así. como apunta Rubiraj
* Haga clic derecho en su proyecto> Propiedades> Android> (en la biblioteca de pestañas) Agregue el proyecto Zxing *
Suponiendo que haya podido crear correctamente el proyecto Zxing como una biblioteca como se explica aquí: http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/
Necesitas seguir el paso dado por el enlace.
http://www.androidaz.com/development/zxing-qr-reader-direct-integration
puedes descargar core.jar desde
http://repo1.maven.org/maven2/com/google/zxing/core/2.2/
Lo anterior está funcionando para mí, si su programa aún pone el core-2.2.jar en libs y limpia su proyecto
Para todos aquellos usuarios de Android Studio / Gradle por ahí
Bueno, ya que mi tarea de hoy era integrar ZXING en una aplicación de Android y no había buenas fuentes de entrada, le daré una pista de lo que me hizo tener éxito, porque resultó ser muy fácil (en la versión 2 . *).
Existe un repositorio git realmente útil que proporciona el proyecto de la biblioteca de Android zxing como un archivo AAR.
Todo lo que tienes que hacer es agregar esto a tu build.gradle
repositories {
mavenCentral()
maven {
url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
}
}
dependencies {
compile ''com.google.zxing:core:2.2''
compile ''com.embarkmobile:zxing-android-minimal:1.2.1@aar''
}
y Gradle hace toda la magia para compilar el código y lo hace accesible en tu aplicación.
Para iniciar el escáner después, use esta clase / método:
IntentIntegrator.initiateScan(this); // `this` is the current Activity
Si ya visitaste el enlace, verás que acabo de copiar y pegar el código desde allí el git readme. Si no, ve allí para obtener más información y ejemplos de código.
Espero ser útil para los futuros lectores. Paz :)
Paso a paso para configurar zxing 3.2.1 en eclipse
- Descargue zxing-master.zip desde " https://github.com/zxing/zxing "
- Descomprima zxing-master.zip, use eclipse para importar el proyecto "android" en zxing-master
- Descargue core-3.2.1.jar desde " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ "
- Cree la carpeta "libs" en el proyecto "android" y pegue cor-3.2.1.jar en la carpeta libs
- Haga clic en el proyecto: elija "propiedades" -> "Compilador Java" para cambiar el nivel a 1.7. Luego haga clic en "Android" cambiar "Proyecto de objetivo de construcción" a Android 4.4.2+, porque usar 1.7 requiere compilar con Android 4.4
- Si "CameraConfigurationUtils.java" no existe en "zxing-master / android / app / src / main / java / com / google / zxing / client / android / camera /". Puede copiarlo desde "zxing-master / android-core / src / main / java / com / google / zxing / client / android / camera /" y pegarlo en su proyecto.
- Proyecto de limpieza y construcción. Si su proyecto muestra un error sobre "cambio de caso", debe cambiarlos a "si - más".
- Terminado. Proyecto de limpieza y construcción. Puede hacer clic en "Propiedades"> "Android"> hacer clic en "Es bibliotecas" para usar en su proyecto