diff --git a/README.md b/README.md index c219dab..9140a21 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Arguments: camera: "front" || "back" // defaults to "back" flash: "on" || "off" || "auto" // defaults to "auto". See Quirks drawSight: true || false //defaults to true, create a red sight/line in the center of the scanner view. + formats: ["QRCODE","CODE128"] //limit scan to formats listed, leave blank if no restriction is desired. } ``` diff --git a/android/ZBarScannerActivity.java b/android/ZBarScannerActivity.java index 9f23fa2..c1af75d 100644 --- a/android/ZBarScannerActivity.java +++ b/android/ZBarScannerActivity.java @@ -4,6 +4,7 @@ import java.lang.RuntimeException; import org.json.JSONException; import org.json.JSONObject; +import org.json.JSONArray; import android.Manifest; import android.app.Activity; @@ -141,15 +142,46 @@ private void setUpCamera() { whichCamera = params.optString("camera"); flashMode = params.optString("flash"); + //new parameter formats - list of formats to scan + JSONArray formats = params.optJSONArray("formats"); + + // Initiate instance variables autoFocusHandler = new Handler(); scanner = new ImageScanner(); scanner.setConfig(0, Config.X_DENSITY, 3); scanner.setConfig(0, Config.Y_DENSITY, 3); + // Set the config for barcode formats - for(ZBarcodeFormat format : getFormats()) { - scanner.setConfig(format.getId(), Config.ENABLE, 1); + if (formats.length() > 0){ + + //disable all + for(ZBarcodeFormat format : getFormats()) { + scanner.setConfig(format.getId(), Config.ENABLE, 0); + } + + //enable only those that are listed + int len = formats.length(); + for (int i=0;i