Zxing条码扫描器无法从我的应用程序

时间:2016-11-02 11:07:50

标签: android button zxing

我通过将包com.google.zxing.integration.android添加到我的项目中并将此代码添加到我的MainActivity.java文件中来集成Zxing条形码扫描程序:

public static Button scanBtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    scanBtn = (Button) findViewById(R.id.scan_button);

    scanBtn.setOnClickListener(this);
}

public void onClick(View v) {
    IntentIntegrator scanIntegrator = new IntentIntegrator(this);
    scanIntegrator.initiateScan();
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    ...
}

出于某种原因,当我点击按钮(scanBtn)时,没有任何反应。日志中没有任何内容,屏幕上没有任何内容。

你能帮我吗?

3 个答案:

答案 0 :(得分:0)

你能试试这段代码,看看它是否适合你?

scanBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    new IntentIntegrator(this).initiateScan();  
                }
            });

只需在onCreate中添加上面的代码,而不是:

scanBtn.setOnClickListener(this);

和此:

public void onClick(View v) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();

}

请告诉我这是否适合您:)

答案 1 :(得分:0)

首先在gradle文件中添加以下依赖项

compile 'com.journeyapps:zxing-android-embedded:3.1.0@aar'
compile 'com.google.zxing:core:3.2.0'

删除com.google.zxing.integration.android

然后更改您的onClick方法,如下面的代码

public void onClick(View v) {
     IntentIntegrator scanIntegrator = new IntentIntegrator(MainActivity.this);
                    scanIntegrator.setPrompt("Scan");
                    scanIntegrator.setBeepEnabled(true);
                    scanIntegrator.setOrientationLocked(true);
                    scanIntegrator.setBarcodeImageEnabled(true);
                    scanIntegrator.initiateScan();
}

它将实例化扫描,您可以在onActivityResult

中获得扫描结果

喜欢这个

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (scanningResult != null) {
            if (scanningResult.getContents() != null) {
                String scanContent = scanningResult.getContents().toString();
                String scanFormat = scanningResult.getFormatName().toString();
            }

            Toast.makeText(this,scanContent+"   type:"+scanFormat,Toast.LENGTH_SHORT).show();

        }else{
            Toast.makeText(this,"Nothing scanned",Toast.LENGTH_SHORT).show();
        }
    }

Here是一个在Android中使用Zxing条形码扫描器的示例项目

希望有所帮助

答案 2 :(得分:0)

我已经添加了相机的许可,它解决了它。