Deprecation warning

Please note that this is outdated documentation for an older release of the Scandit Barcode Scanner SDK.

We are deprecating the 5.x API on all platforms (except Linux). Release 5.19 in April 2021 will be our final. Applications running 5.x will continue to work, and we will continue to release critical bug fixes and security patches only, for one year. We encourage you to migrate to 6.x and take advantage of our latest / advanced features and improved performance.

You'll find the updated documentation at: Data Capture SDK Documentation for Xamarin.Android and Data Capture SDK Documentation for Xamarin.iOS

BarcodePickerActivity Class Reference

Detailed Description

Barcode Picker Activity that can be configured through an intent.

The BarcodePickerActivity provides an easy-to use solution for full-screen barcode scanning. The scanned barcode (symbology, encoded data) is returned as part of the activity result.

Sample Usage

The following code shows how to start the BarcodePickerActivity to scan a retail code (UPCA, EAN13, EAN8, UPCE):

// set Scandit BarcodeScanner app key before starting the activity.
ScanditLicense.setAppKey("Your Scandit BarcodeScanner App Key Goes Here");
Intent launchIntent = new Intent(MyActivity.this, BarcodePickerActivity.class);
launchIntent.putExtra("enabledSymbologies", new int[] {
Barcode.SymbologyEan13,
Barcode.SymbologyEan8,
Barcode.SymbologyUpca,
Barcode.SymbologyUpce
});
// start activity and listen for result.
startActivityForResult(launchIntent, 42);

To get the scanned barcode, you need to override your activity's onActivityResult handler.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != 42) return;
String message = "no code recognized";
if (data.getBooleanExtra("barcodeRecognized", false)) {
message = String.format("%s (%s)", data.getStringExtra("barcodeData"),
data.getStringExtra("barcodeSymbologyName").toUpperCase());
}
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}

Scanner Configuration

The barcode scanning process can be configured through the following extras attached to the intent:

  • enabledSymbologies: Array of symbologies to enable. The values correspond to the symbology values defined in Barcode. For example, EAN13 and UPCA decoding can be enabled as follows:
    intent.putExtra("enabledSymbologies", new int[] { Barcode.SymbologyEan13, Barcode.SymbologyUpca });
  • cameraFacingPreference: Indicates whether the front or back-facing camera should be preferred. Must be one of ScanSettings.CameraFacingFront or ScanSettings.CameraFacingBack. When this value is not present, the back-facing camera is preferred.
  • showTorchButton: Boolean indicating whether the torch button should be shown in the scan UI. When the value is not present, the torch button is not shown.
  • cameraSwitchVisibility: Influences the visibility of the camera switch button. shown in the UI. Must be one of ScanOverlay.CameraSwitchNever, ScanOverlay.CameraSwitchOnTablet, ScanOverlay.CameraSwitchAlways. By default, the camera switch visibility is ScanOverlay.CameraSwitchNever.
  • guiStyle: Lets you choose the style of the scan UI. Can either be ScanOverlay.GuiStyleDefault, ScanOverlay.GuiStyleLaser or ScanOverlay.GuiStyleNone. When the value is not present, ScanOverlay.GuiStyleDefault is assumed.
  • restrictScanningArea: Boolean indicating whether the scanning area should be restricted or not. By default, codes are searched in the full image. Use this option to only scan codes in the center of the image.
  • scanningAreaHeight: Floating point value that specifies the height of the scanning area. When using this option, you must also set restrictScanningArea to true.

Scanner Result

The result of the barcode scanner is attached to the Activity result as extras. The following extras are defined:

  • barcodeRecognized: Boolean that indicates whether a barcode was recognized. This value is set to false when the activity returns when the user presses the back button.
  • barcodeData: The data string contained in the scanned barcode. Only exists when barcodeRecognized is set to true.
  • barcodeRawData: The raw data contained in the scanned barcode as a byte array. Only exists when barcodeRecognized is set to true.
  • barcodeSymbology: The barcode symbology of the recognized code. Only exists when barcodeRecognized is set to true.
  • barcodeSymbologyName: The barcode symbology name. Only exists when barcodeRecognized is set to true.