无法使用 Scandit SDK 扫描某些条形码 - Android
Unable to scan some barcodes with Scandit SDK - Android
我的代码是扫描一定长度的代码但是如果长度增加它不扫描,我不知道如何增加条码的字符长度。我确实检查了以下问题,但不确定如何在我的代码中使用它:
Scandit not recognizing a barcode
这是我当前的代码:
private void showCameraScannerInMatrixMode(){
stopScanner();
ScanSettings settings = ScanSettings.create();
int[] symbologiesToEnable = new int[] {
Barcode.SYMBOLOGY_CODE128
};
for (int sym : symbologiesToEnable) {
settings.setSymbologyEnabled(sym, true);
}
settings.setMatrixScanEnabled(true);
settings.setMaxNumberOfCodesPerFrame(10);
settings.setCodeRejectionEnabled(true);
float zoomLevelInPrefs = (float)PreferenceHelper.getIntFromPreferences(Constants.INLINE_SCANDIT_SCANNER_ZOOM_CONFIG,getApplicationContext());
float zoomLevel = zoomLevelInPrefs / 100;
settings.setRelativeZoom(zoomLevel);
settings.setCameraFacingPreference(ScanSettings.CAMERA_FACING_BACK);
boolean emulatePortraitMode = !BarcodePicker.canRunPortraitPicker();
if (emulatePortraitMode) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
scanTextOverlay.setVisibility(View.VISIBLE);
mBarcodePicker = (BarcodePicker)findViewById(R.id.scannerView);
mBarcodePicker.setOnScanListener(this);
mBarcodePicker.applyScanSettings(settings);
mBarcodePicker.setVisibility(View.VISIBLE);
mBarcodePicker.getOverlayView().setGuiStyle(ScanOverlay.GUI_STYLE_MATRIX_SCAN);
mBarcodePicker.getOverlayView().setVibrateEnabled(false);
mBarcodePicker.setOnScanListener(this);
mBarcodePicker.startScanning();
}
这是我可以扫描的条形码
这个我无法扫描
这方面的相关文档在 https://docs.scandit.com/stable/android/android-active-symbols-counts.html 你应该在你的情况下做什么(你有一个长度为 19 的代码和一个长度为 22 的代码):
SymbologySettings symSettings =
settings.getSymbologySettings(Barcode.SYMBOLOGY_CODE128);
short[] activeSymbolCounts = new short[] {
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
};
symSettings.setActiveSymbolCounts(activeSymbolCounts);
如果您对较短的代码不感兴趣,您可能希望从高于 7 的代码开始。正如指南所述,您可以在 https://play.google.com/store/apps/details?id=com.scandit.demoapp 下载 Scandit 演示应用程序来计算每个代码的长度(只需进入 "Any Code" 模式并扫描条形码)。
我的代码是扫描一定长度的代码但是如果长度增加它不扫描,我不知道如何增加条码的字符长度。我确实检查了以下问题,但不确定如何在我的代码中使用它:
Scandit not recognizing a barcode
这是我当前的代码:
private void showCameraScannerInMatrixMode(){
stopScanner();
ScanSettings settings = ScanSettings.create();
int[] symbologiesToEnable = new int[] {
Barcode.SYMBOLOGY_CODE128
};
for (int sym : symbologiesToEnable) {
settings.setSymbologyEnabled(sym, true);
}
settings.setMatrixScanEnabled(true);
settings.setMaxNumberOfCodesPerFrame(10);
settings.setCodeRejectionEnabled(true);
float zoomLevelInPrefs = (float)PreferenceHelper.getIntFromPreferences(Constants.INLINE_SCANDIT_SCANNER_ZOOM_CONFIG,getApplicationContext());
float zoomLevel = zoomLevelInPrefs / 100;
settings.setRelativeZoom(zoomLevel);
settings.setCameraFacingPreference(ScanSettings.CAMERA_FACING_BACK);
boolean emulatePortraitMode = !BarcodePicker.canRunPortraitPicker();
if (emulatePortraitMode) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
scanTextOverlay.setVisibility(View.VISIBLE);
mBarcodePicker = (BarcodePicker)findViewById(R.id.scannerView);
mBarcodePicker.setOnScanListener(this);
mBarcodePicker.applyScanSettings(settings);
mBarcodePicker.setVisibility(View.VISIBLE);
mBarcodePicker.getOverlayView().setGuiStyle(ScanOverlay.GUI_STYLE_MATRIX_SCAN);
mBarcodePicker.getOverlayView().setVibrateEnabled(false);
mBarcodePicker.setOnScanListener(this);
mBarcodePicker.startScanning();
}
这是我可以扫描的条形码
这个我无法扫描
这方面的相关文档在 https://docs.scandit.com/stable/android/android-active-symbols-counts.html 你应该在你的情况下做什么(你有一个长度为 19 的代码和一个长度为 22 的代码):
SymbologySettings symSettings =
settings.getSymbologySettings(Barcode.SYMBOLOGY_CODE128);
short[] activeSymbolCounts = new short[] {
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
};
symSettings.setActiveSymbolCounts(activeSymbolCounts);
如果您对较短的代码不感兴趣,您可能希望从高于 7 的代码开始。正如指南所述,您可以在 https://play.google.com/store/apps/details?id=com.scandit.demoapp 下载 Scandit 演示应用程序来计算每个代码的长度(只需进入 "Any Code" 模式并扫描条形码)。