Yi *_* H. 5 android barcode-scanner zxing
我正在尝试使用 ZXing 库扫描如下所示的条形码。

(来源:minus.com)
// start scanning
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent, REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
如果我替换"ONE_D_MODE"为"TWO_D_MODE",应用程序可以成功检测到这两个条形码;但 的值result不会改变(仍然是 051488005995)。
// onActivityResult
if(requestCode == REQUEST_CODE && resultCode == RESULT_OK)
String result = intent.getStringExtra("SCAN_RESULT");
Run Code Online (Sandbox Code Playgroud)
有没有办法同时获取条形码值 051488005995 和 50115?
任何其他获取条形码上方的 isbn (0142501158) 而不获取补充 +5 条形码 (50115) 的方法也很好。
谢谢。
据我所知,通过 Intent 使用 zxing 是不可能的。
但是,您可以直接将 ZXing 嵌入到代码中(通过将 ZXing 源添加到代码目录中)。然后您就可以使用com.google.zxing.MultipleBarcodeReader. 该函数decodeMultiple()返回一个条形码数组,然后可以对其进行进一步处理。
一个小例子:
// data: YUV camera preview; width/height: preview size
Result[] decode(byte[] data, int width, int height) {
PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(data, width, height, 0, 0, width, height);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
MultipleBarcodeReader reader = new MultipleBarcodeReader(new MultiFormatOneDReader(null));
return reader.decodeMultiple(bitmap);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7860 次 |
| 最近记录: |