【问题标题】:How to get Barcode type using ZXing library如何使用 ZXing 库获取条码类型
【发布时间】:2013-09-23 11:59:42
【问题描述】:

我使用 ZXing 库进行条码扫描。

我在我的项目中使用了ZXing、IntentIntegrator.java和IntentResult.java这2个类。

我可以很容易地从条形码图像中获取代码,并从下面的代码中获取条形码图像的格式,

public void onClick(View view)
{
    IntentIntegrator integrator = new IntentIntegrator(this);
    integrator.initiateScan();
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) 
{
      IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
      if (scanResult != null) 
      {

          String barcode;
          String format;

          barcode=scanResult.getContents();
          format=scanResult.getFormatName();

      }
}

现在,我的问题是如何获取条形码的类型,例如文本、URL、地址簿、电话号码、电子邮件地址。

我需要你们的帮助,请帮忙!

提前致谢。

【问题讨论】:

    标签: android zxing barcode-scanner


    【解决方案1】:

    这不是条形码本身的属性,而是您选择解析内容的方式。 IntentResult 对象没有此信息,因为它会将解析留给您。

    您也可以包含core.jar 库,然后在内容上使用ResultParser 类来解析它,就像应用程序一样。然后你会得到一个漂亮整洁的对象,代表解析的类型和内容。

    【讨论】:

    • 嘿,假设我已将core.jar 文件包含到我的项目中。现在你能帮我如何使用ResultParser。其实我是android新手。如果你告诉我,那对我来说很容易。
    • 只有在您自己尝试之前,才能显示您尝试过的内容,特别是您的下一个问题。
    【解决方案2】:

    正如肖恩所说,你无法访问它。

    但您可以使用一种简单的方法来检索该条形码格式。

    格式未声明为最终格式(尽管它们是常量)。所以你可能不会使用开关。但是用一个简单的 elseif :(导入后)

    public static BarcodeFormat getBarCodeFormatWith(final String s) {
    
        if (s.equals(EAN_8.toString())){
            return EAN_8;
        } else if (s.equals(EAN_13.toString())) {
            return EAN_13;
        } else if (s.equals(UPC_A.toString())) {
            return UPC_A;
        } else if (s.equals(QR_CODE.toString())) {
            return QR_CODE;
        } else if (s.equals(CODE_39.toString())) {
            return CODE_39;
        } else if (s.equals(CODE_128.toString())) {
            return CODE_128;
        } else if (s.equals(ITF.toString())) {
            return ITF;
        } else if (s.equals(PDF_417.toString())) {
            return PDF_417;
        } else if (s.equals(CODABAR.toString())) {
            return CODABAR;
        } else if (s.equals(DATA_MATRIX.toString())) {
            return DATA_MATRIX;
        } else if (s.equals(AZTEC.toString())) {
            return AZTEC;
        } else if (s.equals(PDF_417.toString())) {
            return PDF_417;
        }  else if (s.equals(CODE_93.toString())) {
            return CODE_93;
        }  else if (s.equals(MAXICODE.toString())) {
            return MAXICODE;
        }  else if (s.equals(UPC_E.toString())) {
            return UPC_E;
        }  else if (s.equals(UPC_EAN_EXTENSION.toString())) {
            return UPC_EAN_EXTENSION;
        }  else if (s.equals(RSS_14.toString())) {
            return RSS_14;
        }  else {
            return null;
        }
    }
    

    完成,享受:) 正在开发 Zxing v3.4.0

    【讨论】:

      猜你喜欢
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多