使用Zxing lib,我能够有效地扫描QR码,我无法扫描条形码扫描。我做了很多RnD和不同的代码测试,但没有工作。
所以,我的问题 -
是Zxing libs支持Android中的条码扫描吗?
如果支持,我应该使用不同的zxing lib或同一个lib(QR_Code)lib吗?
请指点/建议。
Zxing lib支持的代码 -
ZXING支持的条形码格式列表
1. QR_CODE
2. DATA_MATRIX
3. UPC_E
4. UPC_A
5. EAN_8
6. EAN_13
7. UPC_EAN_EXTENSION
8. CODE_128
9. CODE_39
10。 CODE_93 11. CODABAR 12. ITF 13. RSS14 14. PDF417 15. RSS_EXPANDED
使用过的代码快照 -
选项1 -
Intent objIntent = new Intent("com.google.zxing.client.android.SCAN");
objIntent.putExtra("SCAN_MODE", "QR_CODE_MODE");
objIntent.putExtra("SCAN_FORMATS", "CODABAR");
startActivityForResult(objIntent, 0);
选项2 -
Intent objIntent = new Intent("com.google.zxing.client.android.SCAN");
objIntent.putExtra("SCAN_MODE", "PRODUCT_MODE"");
objIntent.putExtra("SCAN_FORMATS", "UPC_A");
startActivityForResult(objIntent, 0);
选项3 -
Intent objIntent = new Intent("com.google.zxing.client.android.SCAN");
objIntent.putExtra("SCAN_MODE", "PRODUCT_MODE"");
objIntent.putExtra("SCAN_FORMATS", "UPC_A");
startActivityForResult(objIntent, 0);
选项4 -
Intent objIntent = new Intent("com.google.zxing.client.android.SCAN");
objIntent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(objIntent, 0);
我有兴趣只扫描条形码而不是QR码 -
答案 0 :(得分:1)
是的,ZXing lib支持常规条形码。
答案 1 :(得分:0)
为什么不选择Zbar库,这似乎更容易实现。 是的但是,如果您想要像Zxing的定制相机扫描仪一样,您必须自定义扫描仪相机的表面,否则它将满足您的要求。
Here is the link for library with a sample too.
如果您查看样本,可以看到有两个功能,一个用于扫描qr和条形码。和其他仅用于qr代码。
// This will scan both
public void launchScanner(View v) {
if (isCameraAvailable()) {
Intent intent = new Intent(this, ZBarScannerActivity.class);
startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
} else {
Toast.makeText(this, "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
}
}
//this will scan only qr code
public void launchQRScanner(View v) {
if (isCameraAvailable()) {
Intent intent = new Intent(this, ZBarScannerActivity.class);
intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.QRCODE});
startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
} else {
Toast.makeText(this, "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
}
}
根据您的需要使用。
Zbar支持以下条形码:
PARTIAL,EAN8,UPCEISBN10,UPCA,EAN13,ISBN13,I25,DATABAR,DATABAR_EXP,CODABAR,CODE39 PDF417,QRCODE,CODE93,CODE128。
答案 2 :(得分:0)
ZXing支持多种条形码格式:UPC_A,UPC_E,EAN_8,EAN_13,CODE_39,CODE_93,CODE_128等。
使用ZXing的最简单方法是使用它们提供的android集成,它也是the way they want people to use it。我有一个example project on github,它显示了如何以这种方式使用ZXing。基本上你需要做这样的事情:
private void scanBarcode() {
IntentIntegrator integrator = new IntentIntegrator(getActivity());
Collection<String> BARCODE_TYPES =
Collections.unmodifiableCollection(Arrays.asList("UPC_A", "EAN_8", "EAN_13"));
integrator.initiateScan(BARCODE_TYPES);
}
如果您想直接使用它,那么最好结帐their code from github。我记得你想要启动的是 CaptureActivity 。
值得结账ZBar。