0

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

这是我的代码:

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

4 回答 4

4

@Zain 严格不推荐您采用的方法

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

您必须使用IntentIntegratorzxing 发布的新类。

干得好

首先添加代码来调用 Intent:

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

从下面的 url 下载 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 的 wiki 页面。他们已经很好地解释了。

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

最后测试项目+库位于

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

于 2012-07-04T05:25:39.183 回答
2

学习http://code.google.com/p/zxing/

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

于 2012-07-04T05:11:33.183 回答
0

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

条码扫描 1 条码扫描2

于 2012-07-04T05:19:09.583 回答
0

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

这是一个具有条形码扫描功能的示例应用程序

于 2019-08-08T15:21:01.047 回答