在android中使用Zxing库解码位图

时间:2013-02-11 07:41:47

标签: android zxing barcode-scanner

我正在集成zxing库来扫描条形码到我的Android应用程序。我在我的应用程序本地执行此操作,如

所示

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

但在运行应用程序时,它要求我安装条形码扫描仪应用程序。如果不安装应用程序,是否无法实现这一目标?

我已经做了很多关于如何实现这一目标的研究,但我最终得不到满意的结果。

我正在尝试使用这段代码

      IntentIntegrator integrator = new IntentIntegrator(TestActivity.this);
      integrator.addExtra("SCAN_WIDTH", 800);
      integrator.addExtra("SCAN_HEIGHT", 200);
      integrator.addExtra("RESULT_DISPLAY_DURATION_MS", 3000L);
      integrator.addExtra("PROMPT_MESSAGE", "Custom prompt to scan a product");
      integrator.initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES);

请帮帮我

更新:

我现在使用不同的zxing技术进行扫描,即用相机捕获图像,然后对其进行解码。我能够使用此代码捕获图像,但捕获后,我尝试使用LuminanceSource,RGBLuminanceSource等类解码捕获图像的位图。

但是生成的二进制位图,

    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

似乎为空。

有人可以告诉我这是为什么吗?我看过很多帖子说这对他们有用但是对我不起作用。

任何人都可以建议我。

以下是我提到的链接,我在接受的答案中使用了确切的代码

Barcode/Qr Code Reader for Android

3 个答案:

答案 0 :(得分:1)

您应该获得所有代码,包括可以从Google代码托管下载的zXing库(core.jar),然后修改CaptureActivity.class以将结果返回到您之前的活动。呼叫意图

   Intent ii=new Intent(your activity.this,CaptureActivity.class);
    startActivityForResult(ii);

然后定义onActivityForResult,你将得到相应的结果。

答案 1 :(得分:1)

最后我找到了答案。使用IntentIntegrator会要求您手动安装扫描仪应用程序,然后使用它扫描条形码。

因此,不想同时使用app或intent调用的人可以使用库中提供的另一个名为CaptureActivity的活动

    Intent intent = new Intent(MyActivity.this, CaptureActivity.class);
    startActivityForResult(intent, 1);

此类存在于您下载的Zxing库的android文件夹中。将此android项目导入您的应用程序将集成Zxing库。导入时要小心包名称。

您可以根据需要修改CaptureActivity

注意:

添加 core.jar 非常重要,否则您最终会遇到很多错误。

答案 2 :(得分:-1)

我没有使用过zxing库,但在我的应用中使用了biggu条码扫描器。它内部也使用相同的zxing库,但是定制使得集成过程非常容易。检查我的Answer,这可能有助于您集成条形码扫描仪。如果您对通过解码图像扫描条形码感兴趣,也可以在同一链接中引用接受的答案。