studio scanner samsung p10 lite leer lector esta escanear donde crear como codigos codigo celular app android android-manifest qr-code android-library

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]


  1. 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.

  2. Asegúrese de que webclass.class exista en su QRcodesampleActivity.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).

  1. Proporcionar la dependencia gradle

    compile ''com.edwardvanraak: MaterialBarcodeScanner: 0.0.6-ALPHA''

  2. 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(); }

  3. Conéctalo a un botón.

    fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startScan(); } });

  4. ¡Empieza a escanear!




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

  1. Descargue zxing-master.zip desde " https://github.com/zxing/zxing "
  2. Descomprima zxing-master.zip, use eclipse para importar el proyecto "android" en zxing-master
  3. Descargue core-3.2.1.jar desde " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ "
  4. Cree la carpeta "libs" en el proyecto "android" y pegue cor-3.2.1.jar en la carpeta libs
  5. 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
  6. 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.
  7. Proyecto de limpieza y construcción. Si su proyecto muestra un error sobre "cambio de caso", debe cambiarlos a "si - más".
  8. Terminado. Proyecto de limpieza y construcción. Puede hacer clic en "Propiedades"> "Android"> hacer clic en "Es bibliotecas" para usar en su proyecto