条码图像扫描仪

时间:2012-07-04 05:09:55

标签: android

我是android新手。我正在尝试开发一种条形码扫描仪,其工作原理如下: 通过相机拍摄(条形码)图像并扫描此条形码图像。 我的问题是我怎么做到的? 提前致谢

这是我的代码:

TextView result_text;
Button scan_btn;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    result_text = (TextView)findViewById(R.id.Result_tv);

    scan_btn = (Button)findViewById(R.id.Barcode_Scan_Button);
    scan_btn.setOnClickListener( new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent scanIntent= new Intent("com.google.zxing.client.android.SCAN");
            scanIntent.putExtra("SCAN_MODE", "QR_CODE_MODE");

            startActivityForResult(scanIntent, 0);

        }
    });
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

        if (requestCode == 0) {


          if (resultCode == RESULT_OK) {

            result_text.setText(intent.getStringExtra("SCAN_RESULT"));

          } else if (resultCode == RESULT_CANCELED) {

            result_text.setText("Scan cancelled.");

          }

        }

      }

    }

4 个答案:

答案 0 :(得分:4)

@Zain严格不建议你采用的方法

根据他们的指导原则,您不应明确调用Scan Intent。

您必须使用zxing发布的新IntentIntegrator课程。

你去吧

首先添加代码以调用Intent:

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

从下面的网址下载IntentIntegrator类。

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java

其次,将其添加到您的Activity中以处理结果:

@Override   
protected 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的维基页面。他们已经很好地解释了它。

http://code.google.com/p/zxing/w/list

http://code.google.com/p/zxing/wiki/ScanningViaIntent

以下是演示如何调用Zxing意图的示例应用程序。

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

最后,Test Project + Library位于

http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid-integration%253Fstate%253Dclosed

答案 1 :(得分:2)

研究http://code.google.com/p/zxing/

无论如何,这个问题相当复杂,这是IIRC使用傅里叶变换器完成的,边缘检测,矩阵计算等。还有很多标准。准备一个月的工作。

答案 2 :(得分:0)

查看以下链接,它将帮助您开发条形码扫描应用程序

Barcode Scanning1 Barcode Scanning2

答案 3 :(得分:0)

Firebase ML套件条形码扫描API可用于在Android应用程序中构建条形码扫描功能。要获取条形码值,需要将包含条形码的竖直图像传递到Firebase ML套件条形码扫描API。

这里是example app with barcode scanning feature