- Print
- DarkLight
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);