0

我使用 Zxing 库读取 QR/BarCode,目前我的项目正在从 Sdcard 读取 Qr/Barcode 并对其进行解码

我想使用我的设备相机扫描代码然后解码,我如何更改我的代码以便它在这里工作。

这是我的代码

  public static class Global
{
    public static String text=null;
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Bitmap bMap = BitmapFactory.decodeFile("/sdcard/2.gif");
    TextView textv = (TextView) findViewById(R.id.mytext);
    View webbutton=findViewById(R.id.webbutton);
    LuminanceSource source = new RGBLuminanceSource(bMap); 
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
    Reader reader = new MultiFormatReader();
    try {
         Result result = reader.decode(bitmap);
         Global.text = result.getText(); 
            byte[] rawBytes = result.getRawBytes(); 
            BarcodeFormat format = result.getBarcodeFormat(); 
            ResultPoint[] points = result.getResultPoints();
            textv.setText(Global.text);
            webbutton.setOnClickListener(this);
    } catch (NotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ChecksumException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FormatException e) {
        // TODO Auto-generated catch block
e.printStackTrace();


    }   
}

@Override
public void onClick(View v) {
    Uri uri = Uri.parse(Global.text); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent);




}
4

2 回答 2

0

这取决于您是喜欢使用像 zxing 这样的外部应用程序(在这种情况下,您只需发送意图,它会为您扫描条形码并返回结果),还是在您的应用程序中执行所有操作。在这种情况下,您需要代码来管理预览图像、拍摄图片并将数据输入 ZXing(或其他)库。

该项目演示:http: //sourceforge.net/projects/javaocr/

包含解析条形码的所有内容(图像数据被馈送到 OCR 引擎)

于 2012-06-28T09:48:58.043 回答
0

您需要在 Activity 中调用 Zxing Intent 并放松。

首先添加代码来调用 Intent:

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

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

public 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-06-28T10:03:30.617 回答