Sunday, 20 November 2016

Barcode and QR Scanner - Android

MaterialBarcodeScanner: Easy to use barcode reader for your Android Project (Uses Google Mobile Vision API).

 - Integrate in a few minutes
 - Quick and simple api
 - No external apps required
 - Uses Google Mobile Vision API (fast, local and rotation free)
 - Automatically parses QR Codes, Data Matrix, PDF-417, and Aztec values
 - Supports 1D barcodes: EAN-13, EAN-8, UPC-A, UPC-E, Code-39, Code-93, Code-128, ITF,
 - Supports 2D barcodes: QR Code, Data Matrix, PDF-417, Aztec


0. Provide gradle dependency
    compile 'com.edwardvanraak:MaterialBarcodeScanner:0.0.6-ALPHA'

1. Build a MaterialBarcodeScanner
    private void startScan() {
         * Build a new MaterialBarcodeScanner
        final MaterialBarcodeScanner mBarcodeScanner 
                 = new MaterialBarcodeScannerBuilder()
                .withResultListener(new MaterialBarcodeScanner.OnResultListener() {
                    public void onResult(Barcode barcode) {
                        barcodeResult = barcode;

2. Hook it up to a button
    fab.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

3. Start scanning!

Additional Setup

Center tracking mode
By default a barcode is tracked/highlighted at the location at which it was found.  With center tracking mode a square image will be shown during scanning that will turn green when a barcode is found. Please note that you can still scan a barcode outside the center tracker! This is purely a visual change.

To activate center tracking mode simply call the following builder method:

If you want to provide your own image for the tracker you can use:

Exclusive barcode scanning
In some situations you might want to scan for only a certain type of barcode like QR-Codes or 2D barcodes. You can do this with the following builder methods:
If you want to scan for a very specific combination of barcodes you can setup the builder like this:
.withBarcodeFormats(Barcode.AZTEC | Barcode.EAN_13 | Barcode.CODE_93)

*Check out the full example project for code required for camera permissions on Android 6.0 Marshmallow

No comments: