用于Java/Android的zxing QR阅读器库的替代方案?

用于Java/Android的zxing QR阅读器库的替代方案?,java,android,ios,zxing,qr-code,Java,Android,Ios,Zxing,Qr Code,除了Zxing,是否还有其他库可以用来创建二维码阅读器,即使它不是免费的。 当然,免费的会很棒。但我也愿意花钱买一个易于定制和节省时间的图书馆 谢谢。实现qr阅读器无需安装zxing,只需创建一个类IntentIntegrator.java和IntentResult.java文件,并从活动中调用即可 这是这个的源代码 现在,如何从活动中调用这些类 btnScanBarCode.setOnClickListener(new View.OnClickListener() {

除了Zxing,是否还有其他库可以用来创建二维码阅读器,即使它不是免费的。

当然,免费的会很棒。但我也愿意花钱买一个易于定制和节省时间的图书馆


谢谢。

实现qr阅读器无需安装zxing,只需创建一个类IntentIntegrator.java和IntentResult.java文件,并从活动中调用即可

这是这个的源代码

现在,如何从活动中调用这些类

  btnScanBarCode.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                    IntentIntegrator integrator = new IntentIntegrator(BarCodeReaderActivity.this);
                integrator.initiateScan();  



                    }
                });
在活动结果中

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub

        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
          if (scanResult != null) {

            // handle scan result
             contantsString =  scanResult.getContents()==null?"0":scanResult.getContents();
             if (contantsString.equalsIgnoreCase("0")) {
                 Toast.makeText(this, "Problem to get the  contant Number", Toast.LENGTH_LONG).show();

             }else {
                 Toast.makeText(this, contantsString, Toast.LENGTH_LONG).show();

            }

          }
          else{
              Toast.makeText(this, "Problem to secan the barcode.", Toast.LENGTH_LONG).show();
          }
    }

我在这里找到了我问题的答案

它比zxing快得多,而且更容易实现

多谢各位

对于iOS:


对于iOS(zbar.sourceforge.net/iphone)和文档(zbar.sourceforge.net/iphone/sdkdoc/install.html)

我也有同样的问题。我下载了ZXing库并将其集成到我的项目中。集成是非常困难和垃圾,我花了很多时间清理项目,只使用QRCode部分。现在它可以工作了,但是一些摩托罗拉设备Atrix和DroidX(Android 2.3)存在一个已知的问题,CaptureActivity显示的是一个白色屏幕而不是摄像头。这是图书馆的问题,但中兴的人不会解决。这一问题似乎也出现在Htc Nexus One上。这是一个帖子:

@肖恩



我知道你是中兴的创始人。条形码扫描器应用程序很棒,但将其用作应用程序中的库则不然。我建议将应用程序和库解耦,并为其编写一份好的文档。我也不明白你为什么放弃对iOS的支持。

出于好奇。。。为什么不是zxing?@SeanOwen zxing很棒。。。但是我必须在4天内完成我的任务,根据你之前的评论,不接受使用相同的体验(UI和行为)。所以,这意味着我需要大量的定制(或者我所想的)。。。我在寻求其他选择,但这并不意味着Zxing对我来说是一个完结的案例。。。。。感谢您与社区分享这么大的努力(Zxing)。您的项目肯定不涉及复制条形码扫描仪UI——否则,您将不得不使用Zxing。这确实不酷。在你自己的应用程序中重复使用扫描库是很好的。我反对几乎全部的复制和粘贴作业。因此,重用库和修改扫描仪用户界面是可以接受的?试试谷歌安卓视觉API:虽然我同意这是最好的方法。。。除了zxing,OP还要求一些东西。这是一个非常简单的方法。抱歉@SeanOwen,我已不再使用此代码读取二维码。当客户要求集成版本时,这将是简单到糟糕的。这将提示我安装条形码扫描仪。问题在于是否需要进行任何更改。。你不能。“条形码扫描仪应用程序很棒,但将其用作应用程序的库并不是”。。。我完全同意你的看法。条形码扫描器不是图书馆。这是一个应用程序。我一直要求人们不要克隆它。core/始终与android/分开。iOS支持没有被放弃;史蒂文还在港口工作。所以,我不理解这三点中的任何一点。而且它不是作为嵌入式ARCode阅读器开发的,所以不容易使用!比zxing好多了。@DeshanR先生,这是ZBar不是,Zbrath这才是我真正想要的!!在我的项目中,我曾经使用zxing解码二维码,而当我的二维码出现在电视上时,不太可能是方形的(有些像rect…)zxing工作非常糟糕(很长时间扫描错误的结果!!不过,这也是一个非常棒的项目,我想知道IOS中是否存在像ZBar这样的库library@MohammedSaleem对于iOS()和文档()
  btnScanBarCode.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                    IntentIntegrator integrator = new IntentIntegrator(BarCodeReaderActivity.this);
                integrator.initiateScan();  



                    }
                });
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub

        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
          if (scanResult != null) {

            // handle scan result
             contantsString =  scanResult.getContents()==null?"0":scanResult.getContents();
             if (contantsString.equalsIgnoreCase("0")) {
                 Toast.makeText(this, "Problem to get the  contant Number", Toast.LENGTH_LONG).show();

             }else {
                 Toast.makeText(this, contantsString, Toast.LENGTH_LONG).show();

            }

          }
          else{
              Toast.makeText(this, "Problem to secan the barcode.", Toast.LENGTH_LONG).show();
          }
    }