在Android应用程序中使用zxing扫描条形码阅读器数据

时间:2015-03-17 10:15:17

标签: java android barcode zxing barcode-scanner

这是我的代码对我不起作用

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

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

            Toast.makeText(getApplicationContext(),"Contents"+contents+"Format"+format,Toast.LENGTH_LONG).show();
            tv.setText(contents+""+format);
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}
startActivityForResult中的

错误(intent,0);我不知道怎么能解决这个错误PLZ帮帮我

1 个答案:

答案 0 :(得分:3)

您也可以通过扩展CaptureActivity来实现。

 public void onClick(View v) {
   Intent intent=new Intent(A.this,ScannerActivity.class);
    startActivity(intent);
        }

ScannerActivity:

public class ScannerActivity extends CaptureActivity {

/** The barcode format. */
String barcodeFormat;

/**
 * Called when the activity is first created.
 * 
 * @param savedInstanceState
 *            the saved instance state
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.barcode_scan);
}

/*
 * (non-Javadoc)
 * 
 * @see
 * com.google.zxing.client.android.CaptureActivity#handleDecode(com.google
 * .zxing.Result, android.graphics.Bitmap)
 */
@Override
public void handleDecode(Result rawResult, Bitmap barcode) {

    String barcodeType = rawResult.getBarcodeFormat().toString();
    String productId = rawResult.getText();
 Toast.makeText(getApplicationContext(),"Contents"+productId +"Format"+barcodeType ,Toast.LENGTH_LONG).show();
    //handle intent by sending product id as your wish...

}

}

barcode_scan.xml :(不要忘记包含capture.xml)

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
   android:orientation="vertical" >
    <include layout="@layout/capture"/> 
</LinearLayout>