实现Android的QR码阅读器

时间:2014-08-07 10:41:21

标签: android qr-code zxing

我想为Android实现QR Code Reader。我使用This Solution但它只打开相机,捕捉图像但什么都不做。我想知道最好的做法(从zxing中解散意图集成商)

4 个答案:

答案 0 :(得分:4)

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

立即启动并运行,Android QR Code Reader Made Simple有机会!这将使您完全控制源代码,您可以轻松地继续构建所提供的代码,或者在现有项目中轻松实现它。

试一试!

答案 1 :(得分:3)

在您的手机中下载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%工作..

答案可能已过时。

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

编辑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/