使用Zxing的Android条码扫描器

时间:2013-05-29 19:06:54

标签: android android-intent barcode zxing barcode-scanner

我想将Zxing整合到一个android项目中(我是初学者)。

我已经看到了这里描述的方式http://bit.ly/nBszrL是不鼓励的,最好的方法是通过Intents,如本文http://bit.ly/o29Uma

所述

p.s:我不想在我的设备上安装条形码扫描器

我的项目中包含了必需的课程:http://bit.ly/16pKMKx

  

我的测试代码:

package com.example.barcodescanner;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    private static final int REQUEST_BARCODE = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    // when my button is clicked
    public void scanBarCode(View view) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "PRODUCT_MODE");  

        startActivityForResult(intent, REQUEST_BARCODE);

        Toast toast = Toast.makeText(this, "Start scanning Barcode", Toast.LENGTH_SHORT);
        toast.show();
    }

}

我真的不明白怎么做这样的方式:http://bit.ly/18v7K2O(我真的不明白,这就是我想要用的)

你知道怎么做吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

Android系统的构建是为了让人们可以编写能够完成某项特定事情的应用程序,而其他开发人员可以在需要时使用它们。条形码扫描就是一个很好的例子。 ZXing制作了一款出色的扫描仪,让其他应用程序通过Intent使用它。基本上你告诉操作系统你要扫描一个条形码,ZXing说:“是的,我能做到!”他们扫描条形码并将信息返回给您。这样做的好处是你不必担心他们何时更新他们的东西。用户只是得到通知它已更新,您可以使用最新和最好的。一个潜在的缺点是用户手机上有另一个应用程序,但我并不认为这是一个退缩。要做到这一点,你真的只需要链接到的两个文件,然后你只需将它放在代码中即可开始扫描:

IntentIntegrator integrator = new IntentIntegrator(yourActivity);
integrator.initiateScan();

这一点得到了条码扫描器的答案:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    if (scanResult != null) {
        // handle scan result
    }
    // else continue with any other code you need in the method
  ...
}

您唯一的另一个选择是下拉条形码扫描器的所有代码并将其整合到您的项目中,然后弄清楚它是如何工作的,以及您需要在哪里将它带入您的应用程序。每次ZXing进行更新时,你都必须重新做这件事。这太乱了!

答案 1 :(得分:1)

go help mod