条码扫描仪始终读取 UPC-E

barcode scanner always reads UPC-E

我正在使用 zxing 在我的应用程序中实现条码扫描器。 问题是扫描结果始终将 UPC-E 检测为扫描格式并返回错误结果。有什么办法可以解决这个问题吗?

我正在使用以下代码启动扫描:

 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "PRODUCT_MODE");//for Qr   code, its "QR_CODE_MODE" instead of "PRODUCT_MODE"
            intent.putExtra("SAVE_HISTORY", false);//this stops saving ur barcode in barcode scanner app's history
            startActivityForResult(intent, 0);

OnActivity 块如下:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent    intent) 
{
if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.d("SEARCH_EAN", "OK, EAN: " + contents + ", FORMAT: " + format);//this is the result
        } else
        if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }

已使用 Barcode-4.7 安装条码扫描器。3.apk 任何线索将不胜感激。

github zbar code

使用适合我的代码。

您的示例有很多问题。首先,您要添加不需要的核心库代码,因为您是通过 Intent.

进行集成的

其次,出于某种原因,您调用了两次扫描。第二组代码什么都不做。相机参数代码也什么都不做。

第三,我认为您使用的是不同的项目,而不是 zxing 用于集成,因为项目中没有 setDesiredBarcodeFormats 方法。除非我忘记这是旧版本或其他版本。

最后,您正在扫描所有 ONE_D_CODE_TYPES 而不是您想要的格式。