【问题标题】:Implementing QR Code reader for android为安卓实现二维码阅读器
【发布时间】:2014-08-07 10:41:21
【问题描述】:

我想为安卓实现二维码阅读器。我使用了This Solution,但它只打开相机,捕捉图像但什么都不做。我想知道最好的方法(忽略zxing的意图集成商)

【问题讨论】:

  • zxing 很耗时。试试 zbar。它很快。你不需要显示进度条。
  • 我正在使用 ZXING 生成代码。我可以只使用 ZBAR 进行扫描吗?
  • 这能回答你的问题吗? How to scan QRCode in android

标签: android qr-code zxing


【解决方案1】:

既然提问者说他​​/她想在没有 ZXing 的情况下这样做,我会提出我最喜欢的选项:使用名称空间 com.google.android.gms.vision.barcode 中通过 Google Play 服务提供的 Google 自己的版本。该解决方案快速稳健且准确,支持all standard formats

要立即启动并运行,请给Android QR Code Reader Made Simple 一个机会!这将使您能够完全控制源代码,并且您可以轻松地继续在提供的代码的基础上进一步构建,或者同样轻松地在您现有的项目中实现它。

试一试!

【讨论】:

  • 这就是我一直在寻找的
  • 看起来很有希望。
【解决方案2】:

在您的手机中下载 zxing。并使用以下..

Intent intent = new Intent(
                        "com.google.zxing.client.android.SCAN");
                intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
                startActivityForResult(intent, 1);

重写下面的函数

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1)
            if (resultCode == Activity.RESULT_OK) {
                String contents = data.getStringExtra("SCAN_RESULT");
                String format = data.getStringExtra("SCAN_RESULT_FORMAT");
                Toast.makeText(getApplicationContext(), contents, Toast.LENGTH_SHORT).show();
                // TODO: Do something here with it
            }// if result_ok
    }// onactivityresult

这是 100% 的工作..

答案可能已过时。

【讨论】:

  • 我想不使用ZXING SCANNER APP来做
  • 它工作正常,但我想在检测 QR 码时显示一些进度对话框之类的东西,以便用户知道它正在检测 QR 码。这是二维码检测的截图-postimg.org/image/5pcja6mcz
  • 我认为这是下一个问题
  • 提出下一个问题,然后重试。祝你好运
  • 对了,进度对话框?有那么慢吗?
【解决方案3】:

我以前也遇到过同样的问题,解决方法是下载Zxing的源代码(https://github.com/zxing/zxing)并集成到我的应用程序中,这样你就不必使用intent了。相信我,这并不难;)

【讨论】:

  • 添加后如何调用
【解决方案4】:

编辑 build.gradle (App) 文件并添加以下依赖项:

compile 'com.journeyapps:zxing-android-embedded:3.4.0'

在 Activity 类中声明以下变量:

IntentIntegrator qrScan;

在 OnCreate 方法中编写以下代码:

        qrScan = new IntentIntegrator(this);
    qrScan.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);

您的按钮功能如下:

    public void startScan(View view) {
    qrScan.initiateScan();
}

现在它将开始扫描,但它需要以下方法来读取结果: 因此,请像下面一样对同一 Activity 使用 OnActivityResult 方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if (result != null) {
        if (result.getContents() == null) {
            Toast.makeText(this, "Result Not Found", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, result.getContents() ,Toast.LENGTH_LONG).show();
            txt.setText(result.getContents());
            qrScan.initiateScan();
        }
    }
}

请参阅下面的链接,它将以简单的形式为您提供更多想法。 https://www.simplifiedcoding.net/android-qr-code-scanner-tutorial/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多