How to integrate ZXing Library to Android Studio for Barcode Scanning?

前端 未结 4 1761
情书的邮戳
情书的邮戳 2020-12-02 13:36

I\'ve been looking all over internet how to include zxing library to my project, and I found this tutorial: http://blog.dihaw.com/integrating-zxing-in-your-android-app-as-st

相关标签:
4条回答
  • 2020-12-02 14:04

    As of version 3 of zxing-android-embedded you only need to add these to your build.gradle file:

    repositories {
        jcenter()
    }
    
    dependencies {
        compile 'com.journeyapps:zxing-android-embedded:3.0.2@aar'
        compile 'com.google.zxing:core:3.2.0'
    }
    

    Follow the steps in: https://github.com/journeyapps/zxing-android-embedded/

    It now also allows for portrait mode with simple changes to the IntentIntegrator, and easier ways to customize the views.

    0 讨论(0)
  • 2020-12-02 14:05

    Easiest way to integrate ZXing for barcode or Qr scanning.

    For Full Reference : Scan Barcode ZXing Android

    Add in dependencies

    compile 'me.dm7.barcodescanner:zxing:1.9' 
    

    ScanActivity

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import com.google.zxing.Result;
    
    import me.dm7.barcodescanner.zxing.ZXingScannerView;
    
    public class ScanActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{
    
        private ZXingScannerView mScannerView;
    
        @Override
        public void onCreate(Bundle state) {
            super.onCreate(state);
            mScannerView = new ZXingScannerView(this);   // Programmatically initialize the scanner view
            setContentView(mScannerView);                // Set the scanner view as the content view
        }
    
        @Override
        public void onResume() {
            super.onResume();
            mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
            mScannerView.startCamera();          // Start camera on resume
        }
    
        @Override
        public void onPause() {
            super.onPause();
            mScannerView.stopCamera();           // Stop camera on pause
        }
    
        @Override
        public void handleResult(Result rawResult) {
            // Do something with the result here
           // Log.v("tag", rawResult.getText()); // Prints scan results
           // Log.v("tag", rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode, pdf417 etc.)
    
            MainActivity.tvresult.setText(rawResult.getText());
            onBackPressed();
    
            // If you would like to resume scanning, call this method below:
            //mScannerView.resumeCameraPreview(this);
        }
    }
    
    0 讨论(0)
  • 2020-12-02 14:07

    I have it working with this:

    repositories { mavenCentral()
        maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" }
    }
    
    compile 'com.google.zxing:core:3.2.1'
    compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'
    compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'
    

    I recommend using the IntentIntegrator

    IntentIntegrator integrator = new IntentIntegrator(getActivity()); 
    integrator.forSupportFragment(this).initiateScan();
    

    The requestCode comes back with IntentIntegrator.REQUEST_CODE

    0 讨论(0)
  • 2020-12-02 14:08

    You need add the following to your build.gradle file:

    repositories {
        mavenCentral()
    
        maven {
            url "http://dl.bintray.com/journeyapps/maven"
        }
    }
    
    dependencies {
        // Supports Android 4.0.3 and later (API level 15)
        compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar'
    
        // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
        // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
        compile 'com.journeyapps:zxing-android-legacy:2.0.1@aar'
    
        // Convenience library to launch the scanning and encoding Activities.
        // It automatically picks the best scanning library from the above two, depending on the
        // Android version and what is available.
        compile 'com.journeyapps:zxing-android-integration:2.0.1@aar'
    
        // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
        // This mostly affects encoding, but you should test if you plan to support these versions.
        // Older versions e.g. 2.2 may also work if you need support for older Android versions.
        compile 'com.google.zxing:core:3.0.1'
    }
    

    My build.gradle file like this:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 21
        buildToolsVersion "21.1.2"
    
        defaultConfig {
            applicationId "com.myapplication2"
            minSdkVersion 16
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    repositories {
        mavenCentral()
    
        maven {
            url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        // Supports Android 4.0.3 and later (API level 15)
        compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'
    
        // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
        // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
        compile 'com.embarkmobile:zxing-android-legacy:2.0.0@aar'
    
        // Convenience library to launch the scanning and encoding Activities.
        // It automatically picks the best scanning library from the above two, depending on the
        // Android version and what is available.
        compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'
    
        // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
        // This mostly affects encoding, but you should test if you plan to support these versions.
        // Older versions e.g. 2.2 may also work if you need support for older Android versions.
        compile 'com.google.zxing:core:3.0.1'
    }
    

    The code is here.

    Also, for how to use it, please refer my answer on the Stackoverflow here

    It contains method and also simple code that I have tested.

    0 讨论(0)
提交回复
热议问题