Java – Use zxing in Android applications to scan barcode reader data

Use zxing in Android applications to scan barcode reader data… here is a solution to the problem.

Use zxing in Android applications to scan barcode reader data

This is my code that doesn’t work for me

 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) error; I don’t know how to fix this error, please help me

Solution

You can also do this by extending CaptureActivity.

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

Scanner Activity:

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: (Don’t forget to include 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>

Related Problems and Solutions