Follow

How to Add a New Barcode Symbology

Overview

A fundamental requirement for scanning barcodes is to enable each specific symbology within the Scandit engine. Review the code snippets below to see how to enable them per platform or framework.

⚠️ The code snippets below assume use of the BarcodeCapture API, and will be similar (though not identical) if using another mode with mode settings. See the full list below:
  • SparkScan
  • BarcodeSelection
  • BarcodeBatch
  • BarcodeCount
  • BarcodeFind
  • BarcodePick
  • BarcodeAr
⚠️ You can review the complete list of Scandit's supported Barcode Symbologies and submit a support ticket to add symbologies to your license key permissions (indicated by "Error 24" shown on screen.)

iOS

Swift

private func setupScanning() {

...

let barcodeCaptureSettings = BarcodeCaptureSettings()

barcodeCaptureSettings.set(symbology: .ean13UPCA, enabled: true)
barcodeCaptureSettings.set(symbology: .ean8, enabled: true)
barcodeCaptureSettings.set(symbology: .upce, enabled: true)
barcodeCaptureSettings.set(symbology: .qr, enabled: true)
barcodeCaptureSettings.set(symbology: .dataMatrix, enabled: true)

barcodeCapture = BarcodeCapture(context: dataCaptureContext, settings: barcodeCaptureSettings)

...

}

Objective-C

- (void)setupScanning {

...

self.dataCaptureContext = [SDCDataCaptureContext contextForLicenseKey:@"-- ENTER YOUR SCANDIT LICENSE KEY HERE --"];

SDCBarcodeCaptureSettings *barcodeCaptureSettings = [SDCBarcodeCaptureSettings settings];

[barcodeCaptureSettings setSymbology:SDCSymbologyEAN13UPCA enabled:YES];
[barcodeCaptureSettings setSymbology:SDCSymbologyEAN8 enabled:YES];
[barcodeCaptureSettings setSymbology:SDCSymbologyUPCE enabled:YES];
[barcodeCaptureSettings setSymbology:SDCSymbologyQR enabled:YES];
[barcodeCaptureSettings setSymbology:SDCSymbologyDataMatrix enabled:YES];

self.barcodeCapture = [SDCBarcodeCapture barcodeCaptureWithContext:self.dataCaptureContext settings:barcodeCaptureSettings];

...

}

API Reference

Android

Kotlin

private fun setupScanning() {

...

val barcodeCaptureSettings = BarcodeCaptureSettings()

val symbologies = hashSetOf(
Symbology.EAN13_UPCA,
Symbology.EAN8,
Symbology.UPCE,
Symbology.QR,
Symbology.DATA_MATRIX,
Symbology.CODE39,
Symbology.CODE128,
Symbology.INTERLEAVED_TWO_OF_FIVE
)
barcodeCaptureSettings.enableSymbologies(symbologies)

barcodeCapture = BarcodeCapture.forDataCaptureContext(dataCaptureContext, barcodeCaptureSettings)

...

}

Java

private void setupScanning() {

...

BarcodeCaptureSettings barcodeCaptureSettings = new BarcodeCaptureSettings();

HashSet<Symbology> symbologies = new HashSet<>();
symbologies.add(Symbology.EAN13_UPCA);
symbologies.add(Symbology.EAN8);
symbologies.add(Symbology.UPCE);
symbologies.add(Symbology.QR);
symbologies.add(Symbology.DATA_MATRIX);
symbologies.add(Symbology.CODE39);
symbologies.add(Symbology.CODE128);
symbologies.add(Symbology.INTERLEAVED_TWO_OF_FIVE);
barcodeCaptureSettings.enableSymbologies(symbologies);

barcodeCapture = BarcodeCapture.forDataCaptureContext(dataCaptureContext, barcodeCaptureSettings);

...

}

 

API Reference

Web

Typescript / JavaScript

const setupScanning = () => {

...

barcodeCaptureSettings: BarcodeCaptureSettings = new BarcodeCaptureSettings();

barcodeCaptureSettings.enableSymbologies([
Symbology.EAN13UPCA,
Symbology.EAN8,
Symbology.UPCE,
Symbology.QR,
Symbology.DataMatrix,
Symbology.Code39,
Symbology.Code128,
Symbology.InterleavedTwoOfFive,
]);

const barcodeCapture = await BarcodeCapture.forContext(dataCaptureContext, barcodeCaptureSettings);
}

API Reference

React Native

Typescript / JavaScript

const setupScanning = () => {

...

barcodeCaptureSettings = new BarcodeCaptureSettings();

barcodeCaptureSettings.enableSymbologies([
Symbology.EAN13UPCA,
Symbology.EAN8,
Symbology.UPCE,
Symbology.QR,
Symbology.DataMatrix,
Symbology.Code39,
Symbology.Code128,
Symbology.InterleavedTwoOfFive,
]);

const barcodeCapture = BarcodeCapture.forContext(dataCaptureContext, barcodeCaptureSettings);

...

}

API Reference

Capacitor

Typescript / JavaScript

function setupScanning() {

...

barcodeCaptureSettings = new BarcodeCaptureSettings();

barcodeCaptureSettings.enableSymbologies([
Symbology.EAN13UPCA,
Symbology.EAN8,
Symbology.UPCE,
Symbology.QR,
Symbology.DataMatrix,
Symbology.Code39,
Symbology.Code128,
Symbology.InterleavedTwoOfFive,
]);

window.barcodeCapture = BarcodeCapture.forContext(dataCaptureContext, barcodeCaptureSettings);

...

}

API Reference

Flutter

Dart

void setupScanning() {

...

_barcodeCaptureSettings = BarcodeCaptureSettings();

_barcodeCaptureSettings.enableSymbologies({
Symbology.ean8,
Symbology.ean13Upca,
Symbology.upce,
Symbology.qr,
Symbology.dataMatrix,
Symbology.code39,
Symbology.code128,
Symbology.interleavedTwoOfFive
});

_barcodeCapture = BarcodeCapture.forContext(_dataCaptureContext, _barcodeCaptureSettings)

...

}

API Reference

Xamarin

C#

private setupScanning() {

...

this.BarcodeCaptureSettings = BarcodeCaptureSettings.Create();

HashSet<Symbology> symbologies = new HashSet<Symbology>()
{
Symbology.Ean13Upca,
Symbology.Ean8,
Symbology.Upce,
Symbology.Qr,
Symbology.DataMatrix,
Symbology.Code39,
Symbology.Code128,
Symbology.InterleavedTwoOfFive
};

barcodeCaptureSettings.EnableSymbologies(symbologies);

this.barcodeCapture = BarcodeCapture.Create(this.dataCaptureContext, barcodeCaptureSettings);

...

}

API Reference

.NET/MAUI

C#

private setupScanning() {

...

this.BarcodeCaptureSettings = BarcodeCaptureSettings.Create();

HashSet<Symbology> symbologies = new HashSet<Symbology>()
{
Symbology.Ean13Upca,
Symbology.Ean8,
Symbology.Upce,
Symbology.Qr,
Symbology.DataMatrix,
Symbology.Code39,
Symbology.Code128,
Symbology.InterleavedTwoOfFive
};

barcodeCaptureSettings.EnableSymbologies(symbologies);

this.barcodeCapture = BarcodeCapture.Create(this.dataCaptureContext, barcodeCaptureSettings);
}

API Reference

Scandit Express

Coming soon.

 

 

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request