Additional Symbologies
  • 29 May 2024
  • 1 Minute to read
  • Contributors
  • Dark
    Light

Additional Symbologies

  • Dark
    Light

Article summary

Supported Symbologies

The Vuzix M300XL and M300 include a barcode scanning engine with a license for the most common symbologies.

  • QR

  • QR Micro

  • EAN (8 & 13)

  • UPC (A & E)

  • Data Matrix

  • Code 128

The following additional symbologies may be scanned using this SDK by providing a paid license key.

  • GS1 DATABAR

  • CODE 39

  • PDF417

  • AZTEC CODE

  • CODE 25

  • CODE 93

  • CODABAR

  • DOTCODE

  • CODE 11

  • MSI PLESSEY

  • MAXICODE

  • POSTAL BARCODES


Obtaining a License

The Manatee Works barcode engine is used internally in the device. Developers who wish to replace the Vuzix default license with their own license should register directly on https://manateeworks.com.

Trial licenses are available for a limited duration test on a small number of devices

Replacing the License in Code

The license must be provided at scan time. The license key is global to a product you have registered, and the same on all devices. This means it should be hard-coded into your application. If you will be reselling this license to the end customers, be sure any trial version you distribute does NOT provide the license key as that will count towards your maximum number of devices even if it is only used to scan the default symbologies.

To pass the license key when scanning by intent, simply add one Extra to the intent.

private static final int REQUEST_CODE_SCAN = 0;
Intent scannerIntent = new Intent(ScannerIntent.ACTION);
scannerIntent.putExtra(ScannerIntent.EXTRA_LICENSE_KEY, getResources().getString(R.string.secret_license_key) );
startActivityForResult(scannerIntent, REQUEST_CODE_SCAN);


To add a license when scanning by fragment, simply add the license to the Bundle passed to setArguments()


ScannerFragment scannerFragment = new ScannerFragment();
Bundle args = new Bundle();
// A rectangle must be defined for the scanner to function. This is a recommended default. args.putParcelable(ScannerFragment.ARG_SCANNING_RECT, new ScanningRect(.6f, .75f));
args.putString(ScannerFragment.ARG_LICENSE_KEY, getResources().getString(R.string.secret_license_key) );
scannerFragment.setArguments(args);


The more symbologies that are active, the longer the engine will take to resolve a scan. It is strongly encouraged to limit the number of symbologies to those that are relevant using

String[] barcodes = new String[] {
	BarcodeType.CODE_25_STANDARD.name(), BarcodeType.CODE_25_INVERTED.name()
};
intent.putExtra(ScannerIntent.EXTRA_BARCODE_TYPES, barcodes);


or

ring[] barcodes = new String[] {
	BarcodeType.CODE_25_STANDARD.name(), BarcodeType.CODE_25_INVERTED.name()
};
args.putStringArray(ScannerFragment.ARG_BARCODE_TYPES, barcodes);


Was this article helpful?

What's Next