ZXing如何扫描QR码和1D条形码?

20

我刚刚在我的应用中引入了ZXing库,我知道如何设置putExtra函数以扫描QR码条形码:

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

如果我想扫描一维条形码:

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

但是我该如何使应用程序能够同时扫描一维和二维条形码呢?

谢谢! Marco

4个回答

28

如果您只想扫描这两种类型的条形码(而不是仅限于这两种):

请勿将SCAN_MODE附加到意图中。这是可选的,可以限制条形码的类型。不指定它将扫描所有可能的类型。


谢谢,我不知道我可以这样做 :) 完美地运作! - MataMix

7

请查看以下代码。这段代码对我来说完全符合您的要求。

 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
              intent.setPackage("com.google.zxing.client.android"); 
              //intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
              intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
              startActivityForResult(intent, 0);

2

我建议使用IntentIntegrator,它是Zxing项目中的一个类,我在我的一个应用程序中正在使用它。我已经提供了文件的链接。它封装了扫描代码,非常适合简单的扫描功能。您需要查看initiateScan方法。祝您使用愉快!


2
您应该使用“SCAN_MODE”而不是“QR_CODE_MODE”:
INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");

应该是

INTENT.putExtra("SCAN_MODE", "SCAN_MODE");

只需不添加 SCAN_MODE,就可以达到与其相同的效果。参考:https://dev59.com/qHzaa4cB1Zd3GeqPQXlw#21764891 - Rahul Tiwari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接