Google Mobile Vision ===== Installation ------------ Add the following dependency to your build.gradle file. `compile 'me.dm7.barcodescanner:vision:1.9'` Simple Usage ------------ 1.) Add camera permission to your AndroidManifest.xml file: ```xml ``` 2.) A very basic activity would look like this: ```java package me.dm7.barcodescanner.vision.sample; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import me.dm7.barcodescanner.vision.BarcodeFormat; import me.dm7.barcodescanner.vision.Result; import me.dm7.barcodescanner.vision.VisionScannerView; public class SimpleScannerActivity extends Activity implements VisionScannerView.ResultHandler { private static final String TAG = "SimpleScannerActivity"; private VisionScannerView mScannerView; @Override public void onCreate(Bundle state) { super.onCreate(state); mScannerView = new VisionScannerView(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.getBarcode().displayValue); // Prints scan results Log.v(TAG, BarcodeFormat.getFormatById(rawResult.getBarcode().format).toString()); // Prints the scan format (qrcode, pdf417 etc.) // If you would like to resume scanning, call this method below: mScannerView.resumeCameraPreview(this); Toast.makeText(SimpleScannerActivity.this, rawResult.getBarcode().displayValue, Toast.LENGTH_SHORT).show(); } } ``` Please take a look at the [vision-sample] (https://github.com/dm77/barcodescanner/tree/master/vision-sample) project for a full working example. Advanced Usage -------------- Take a look at the [FullScannerActivity.java] (https://github.com/dm77/barcodescanner/blob/master/vision/sample/src/main/java/me/dm7/barcodescanner/vision/sample/FullScannerActivity.java) classes to get an idea on advanced usage. Interesting methods on the VisionScannerView include: ```java // Toggle flash: void setFlash(boolean); // Toogle autofocus: void setAutoFocus(boolean); // Specify interested barcode formats: void setFormats(List formats); // Specify the cameraId to start with: void startCamera(int cameraId); ``` Specify front-facing or rear-facing cameras by using the `void startCamera(int cameraId);` method. Supported Formats: ```java BarcodeFormat.CODE_128 BarcodeFormat.CODE_39 BarcodeFormat.CODE_93 BarcodeFormat.CODABAR BarcodeFormat.DATA_MATRIX BarcodeFormat.EAN_13 BarcodeFormat.EAN_8 BarcodeFormat.ITF BarcodeFormat.QR_CODE BarcodeFormat.UPC_A BarcodeFormat.UPC_E BarcodeFormat.PDF417 BarcodeFormat.AZTEC ```