ZXing条码扫描器读取巴西条码

时间:2014-10-16 13:54:15

标签: java android integration barcode zxing

我知道在论坛中有另一个帖子有相同的主题,但是我不能解决我的问题而且我已经尝试了所有内容而且它不起作用。

这是事情,我试图从ZXing制作barcodeScanner,在我正在开发的android中读取条形码格式交错2 of 5,但它不起作用。扫描仪在屏幕上保持红灯,但根本不读取条形码。

我正在使用从这里http://mvnrepository.com/artifact/com.google.zxing/android-integration/2.3.0下载的“android-integration-2.3.0.jar”, 但它根本不读我的条形码。我确定问题不在我的条形码上,而是来自这里着名银行的官方条码。 这是我遵循的教程: http://techiedreams.com/android-zxing-barcode-scanner-integration/

无论如何,让我给你看一些代码:这就是我调用barCodeScanner的方式

ImageView ivBarCode =(ImageView)findViewById(R.id.ivPagamentosCodBar);         ivBarCode.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_FORMATS", "AZTEC,CODABAR,CODE_39,CODE_93,CODE_128,DATA_MATRIX,EAN_8,EAN_13,ITF,MAXICODE,PDF_417,QR_CODE,RSS_14,RSS_EXPANDED,UPC_A,UPC_E,UPC_EAN_EXTENSION");
            startActivityForResult(intent, 0);
        }
    });

这就是我正在阅读的信息: 或者至少认为它应该有效:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//      if (data == null) {
//          ringProgressDialog.dismiss();
//          return;
//      }else 
        if (requestCode==IntentIntegrator.REQUEST_CODE)
        {
            IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
            if (scanResult != null)
            {
               String codBar = scanResult.toString();
               Toast.makeText(PagamentosContas.this, codBar, Toast.LENGTH_LONG).show();
               Log.e("Código de Barras",codBar);
               Log.e("Código de Barras",codBar);
               Log.e("Código de Barras",codBar);

            }
            else
            {
                // else continue with any other code you need in the method
               Toast.makeText(PagamentosContas.this, "scanResult is null.",     Toast.LENGTH_LONG).show();
            }
    }
//      else{
//      String valor = data.getStringExtra("valor");
//      valor = valor.replace(",", ".");
//
//      pagamento.setValorConta(valor);
//      ThreadPagamentosContas thread1 = new ThreadPagamentosContas();
//      thread1.start();
//      ringProgressDialog.dismiss();
//      }

    }

它根本没有读取任何条形码,或者当它完成时,做错了,用EAN3取了一个交错的2 of 5 ...

以下是官方条码的示例: https://drive.google.com/file/d/0ByQMtFUGwDRBWnZObkFBcDR1RVk/edit

提前谢谢。 这让我疯了几个月......

1 个答案:

答案 0 :(得分:0)

我发现了问题! 教程中的所有内容都是正确的,并且工作正常。 问题是我用于测试的所有设备的相机。

上周我有一个更好的智能手机,有更好的资源,它读条码就好了。 平板电脑通常在相机硬件中没有自动对焦工具,因此无法正确聚焦条形码。