在android中使用Zxing库解码位图

在android中使用Zxing库解码位图,android,zxing,barcode-scanner,Android,Zxing,Barcode Scanner,我正在集成zxing库,以便将条形码扫描到我的android应用程序中。我正在根据我的应用程序执行此操作,如中所示 但在运行应用程序时,它要求我安装条形码扫描仪应用程序。如果不安装应用程序,是否不可能实现此目标 我已经做了很多关于如何实现这一点的研究,但最终没有得到令人满意的结果 我试着用这段代码 IntentIntegrator integrator = new IntentIntegrator(TestActivity.this); integrator.addEx

我正在集成zxing库,以便将条形码扫描到我的android应用程序中。我正在根据我的应用程序执行此操作,如中所示

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

我已经做了很多关于如何实现这一点的研究,但最终没有得到令人满意的结果

我试着用这段代码

      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));
似乎为空

谁能告诉我这是为什么?我看到很多帖子说这对他们有效,但对我无效

谁能给我提个建议吗

这是我提到的链接,我使用的是公认答案中的确切代码


我没有使用zxing库,但在我的应用程序中使用了biggu条形码扫描仪。它在内部也使用相同的zxing库,但经过定制,使得集成过程非常简单。在此处检查我的,它可能会帮助您集成条形码扫描仪。如果您对通过解码图像扫描条形码感兴趣,也可以在同一链接中引用已接受的答案。

我没有使用zxing库,但在我的应用程序中使用了biggu条形码扫描仪。它在内部也使用相同的zxing库,但经过定制,使得集成过程非常简单。在此处检查我的,它可能会帮助您集成条形码扫描仪。如果您对通过解码图像扫描条形码感兴趣,也可以在同一链接中引用已接受的答案。

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

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

然后定义onActivityForResult,您将在其中获得相应的结果。

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

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

然后定义onActivityForResult,在这里您将得到相应的结果。

最后我找到了这个问题的答案。使用IntentIntegrator将要求您手动安装扫描仪应用程序,然后使用该应用程序扫描条形码

因此,无论谁不想使用应用程序或意图调用,都可以使用库中提供的另一个名为CaptureActivity的活动

    Intent intent = new Intent(MyActivity.this, CaptureActivity.class);
    startActivityForResult(intent, 1);
这个类存在于您下载的Zxing库的android文件夹中。将此android项目导入应用程序将集成Zxing库。导入时请注意程序包名称

您可以根据需要修改CaptureActivity

注意:


添加core.jar非常重要,否则你会有很多错误。

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

因此,无论谁不想使用应用程序或意图调用,都可以使用库中提供的另一个名为CaptureActivity的活动

    Intent intent = new Intent(MyActivity.this, CaptureActivity.class);
    startActivityForResult(intent, 1);
这个类存在于您下载的Zxing库的android文件夹中。将此android项目导入应用程序将集成Zxing库。导入时请注意程序包名称

您可以根据需要修改CaptureActivity

注意:


添加core.jar非常重要,否则将导致大量错误。

感谢您的回复。但在公认的答案中,拍摄图像时会发生什么?“我应该只使用Zxing和那个太过专注的整合者。”tejas在接受的答案中,它获取图像,然后解码该图像。我可以建议你使用Biggu条形码扫描仪,它将与zxing图书馆相同哦,是吗?我认为这不是直接的方法。不,@TNR,换扫描仪不是我的事,希望你拿到了:(感谢您的回复。但是在公认的答案中,捕获图像时会发生什么?我应该只使用Zxing和那个太过专注的整合器。@tejas在公认的答案中,它会获取图像,然后解码该图像。我可以建议您使用Biggu条形码扫描仪,它将与Zxing Library相同哦,是吗?我认为这不是st直接接近。不,@TNR,我不想更换扫描仪,希望你能拿到:(为什么使用CaptureActivity?IntentIntegrator是否不可能按照Zxing TestActivity.java中给出的示例使用。我不希望它强制我安装条形码扫描仪应用程序。这就是我面临的问题。提供的示例无法解决您的问题。intent Integrator假设应该有Zxing条形码扫描仪应用程序,否则它将强制o安装应用程序。在你的情况下,你的应用程序中需要带条形码扫描仪,不是吗?是的,确切地说,它要求我安装扫描仪应用程序。那么解决方案是什么?但在iPhone中,我认为使用相同的Zxing是可能的。然后在android中也应该是可能的,对吗?哦,很抱歉,iPhone应用程序使用了其他sdk,即所谓的扫描ned SDKHY CaptureActivity?IntentIntegrator是否不可能按照Zxing TestActivity.java中给出的示例使用。我不希望它强制我安装条形码扫描仪应用程序。这就是我面临的问题。提供的示例无法解决您的问题。intent Integrator假设应该有Zxing条形码扫描仪应用程序,否则它会强制安装应用程序。在您的情况下,您需要条形码扫描仪