Android Zxing ITF条码未在自定义应用程序中扫描

Android Zxing ITF条码未在自定义应用程序中扫描,android,zxing,barcode-scanner,Android,Zxing,Barcode Scanner,我正在尝试在我的一个应用程序中使用zxing条形码来扫描条形码。我已经使用intent启动按钮cick上的条形码扫描仪 Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); startActivityForResult(intent, 0); 我发现,大多数条形码都可以很好地扫描,但当我尝试在我的应用程序中扫描ITF(5个

我正在尝试在我的一个应用程序中使用zxing条形码来扫描条形码。我已经使用intent启动按钮cick上的条形码扫描仪

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(intent, 0);
我发现,大多数条形码都可以很好地扫描,但当我尝试在我的应用程序中扫描ITF(5个交叉2个)条形码时,它不起作用,但如果我只使用zxing条形码扫描仪,它就可以很好地工作

现在我已经搜索了一段时间,并且读到我可以使用允许的长度。我找不到多少关于如何将这些信息传递给扫描仪的信息。我试过下面的方法,但没有什么区别

**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);
注意:您可能应该使用提供的意图,而不是硬编码extras字符串

解释

intent.putExtra("SCAN_MODE", Intents.Scan.ONE_D_MODE);
这与允许的长度无关。ITF不是产品模式格式之一

PRODUCT_FORMATS = EnumSet.of(BarcodeFormat.UPC_A,
                             BarcodeFormat.UPC_E,
                             BarcodeFormat.EAN_13,
                             BarcodeFormat.EAN_8,
                             BarcodeFormat.RSS_14,
                             BarcodeFormat.RSS_EXPANDED);
它包含在1D格式列表中

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

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

您好,抱歉,回复时间太长。谢谢你的帮助。最后,我在代码
intent.putExtra(“扫描格式”、“产品模式、代码39、代码93、代码128、数据矩阵、ITF”)中添加了以下行:现在正在运行,但稍后我将尝试您的解决方案。再次感谢你的帮助