android中的条码扫描器无法扫描

时间:2012-02-01 23:37:14

标签: android barcode-scanner zxing

我想制作一个应用程序,用户从产品中扫描条形码,然后Android手机将显示有关产品的一些细节(来自数据库)。 我在我的Android手机上安装了ZXing条码扫描器,用于调试我的应用程序。当我使用ZXing应用程序时,它会扫描条形码。 但是当我从我的android项目中打开ZXing时,我在另一篇文章中找到了以下代码,它没有扫描条形码。我可以在手机的相机中看到红线,但它没有显示绿点'读'条形码。

Calling barcode scanner on a button click in android application

为什么会发生这种情况? 提前致谢

4 个答案:

答案 0 :(得分:1)

尝试下面的代码。 这是我自己用过的工作代码。

public class MyTestActivity extends Activity {
    @Override
      public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
    Button b = new Button(this);
    b.setText("Scan");
    b.setWidth(100);
    LinearLayout ll = new LinearLayout(this);

     b.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            startActivityForResult(intent, 0);
        }   
    });

        ll.addView(b);
        setContentView(ll);

    }

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

//        IntentResult scanResult = IntentIntegrator.parseActivityResult(
//                  requestCode, resultCode, intent);

        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

                Dialog d = new Dialog(this);
                LinearLayout ll = new LinearLayout(this);
                TextView tv = new TextView(this);
                tv.setText(contents+" "+format);
                ll.addView(tv);
                d.setContentView(ll);
                d.show();          
            }
        }
    }
       }

希望有所帮助

答案 1 :(得分:0)

请使用我们提供的预先打包的集成代码,而不是调试您的意图代码:http://code.google.com/p/zxing/wiki/ScanningViaIntent

答案 2 :(得分:0)

谢尔盖,上面的代码将用于QR码,而不是条形码,你是否测试过条形码。

请告诉我Zxing lib的条形码工作人员。

答案 3 :(得分:0)

我有同样的问题,要解决改变

intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 

intent.putExtra("PRODUCT_MODE", "QR_CODE_MODE");