android - Zxing ITF 条形码无法在自定义应用程序中扫描

标签 android zxing barcode-scanner

我正在尝试在我的应用程序之一中使用 zxing 条形码来扫描条形码。我已经使用 Intent 在单击按钮时启动条形码扫描仪。

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(intent, 0);

我发现大多数条形码都可以正常扫描,但是当我尝试在应用程序中扫描 ITF(Interleaved 2 of 5)条形码时,它不起作用,但如果我只使用 zxing 条形码扫描仪,它就可以正常工作。

现在我已经搜索了一段时间并了解到我可以使用 ALLOWED_LENGTH。我找不到太多关于如何将此信息传递给扫描仪的信息。我尝试了以下方法,但实际上并没有什么区别。

**int[] item = new int []{6, 7, 8, 9, 10, 11, 12, 13};**
**intent.putExtra("ALLOWED_LENGTHS", item);**

我将上面的两行添加到我的代码中。有人可以告诉我实现此目标的正确方法是什么吗?

提前致谢

最佳答案

解决方案

intent.putExtra("SCAN_MODE", Intents.Scan.ONE_D_MODE);

注意:您可能应该使用提供的 Intent ,而不是硬编码附加字符串

说明

这与允许的长度无关。 ITF 不是 PRODUCT_MODE 格式之一

PRODUCT_FORMATS = EnumSet.of(BarcodeFormat.UPC_A,
                             BarcodeFormat.UPC_E,
                             BarcodeFormat.EAN_13,
                             BarcodeFormat.EAN_8,
                             BarcodeFormat.RSS_14,
                             BarcodeFormat.RSS_EXPANDED);

它包含在一维格式列表中

ONE_D_FORMATS = EnumSet.of(BarcodeFormat.CODE_39,
                           BarcodeFormat.CODE_93,
                           BarcodeFormat.CODE_128,
                           BarcodeFormat.ITF,
                           BarcodeFormat.CODABAR);
ONE_D_FORMATS.addAll(PRODUCT_FORMATS);

额外更改您的 Intent 将启用 ITF 支持,但可能会产生其他后果(例如产品搜索功能)

关于android - Zxing ITF 条形码无法在自定义应用程序中扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17180555/

相关文章:

android - 为什么 Logcat 不显示所有系统消息?

java - 选项卡不填充 tablayout

android - Firebase PhoneAuthentication 在调试版本中工作但在发布版本中不工作

linux - zxing- QRCode解码问题

java - 如何将zxing编译为aar?

android - 如何在小窗口打开 "zxing Barcode"扫描画面?

java - Vision API 不支持相机自动对焦

android - 具有 3D POI 的基于位置的增强现实框架(Android、iOS)?

android - 如何将 Zxing 取景器矩形设置为纵向模式

条码扫描器的 C# 编程 : RS232 vs Keyboard Wedge vs USB